hello everyone, i am writing a program for c8051f020,in which i have 4 ".c" files: main c file,keyroutine file, general routines files,confguration file
i separated bit addressable, data addressable, functions, #defines in separate header files
i included these header files in respective ".c" file
but i am getting following error in linking
1. public refers to ignored segment 2.address space overflow both for data as well as bit memory 3.multiple public definitions
i have put all ".c" files for build shall i continue or main c file should be put for building
if i do so then for debugging i will not be able to put breakpoint in other c files
can you tell me how to include c file in another c file
for further details pls let me know
thank you all take care
Or from the "Embedded Muse 169" (www.ganssle.com/tem-back.htm):
Steve Strobel wrote about header guards: I have adopted an unconventional include guard to detect and warn about such header include loops. It is even bigger and uglier than the standard include guard (which I think is ugly), but has saved me lots of frustration by letting me know when a cycle exists before I waste time trying to track down a bunch of related compiler errors. //------------------------------------------------------------ #ifdef main_h_include_finished #elif defined(main_h_include_started) #warning "HEADER FILE INCLUDE LOOP!!!" #else #define main_h_include_started //------------------------------------------------------------ // header file contents go here //------------------------------------------------------------ #define main_h_include_finished #endif //------------------------------------------------------------
Not sure though why he added "main_h_include_started", seems unnecessary, but adding a #warning is nice. As long as you don't have legacy spaghetti code that includes everything everywhere and a build system/compiler that stops on warnings :-)