c langage preprocessing


I have a following header file


#define A 100

#if defined(A)
#error "You have defined A to 100"

when I do preprocessing it in the following way on a SunOs 5.10 it gives an error.

/usr/lib/cpp -C myhdr.h > myout
"/usr/include/sys/isa_defs.h", line 492: undefined control
"myhdr.h", line 6: undefined control

#error directive is causing the problem.

Please tell me the solution to avoid the above error on solaris box.

I preprocessed on AIX using the following command it works fine

xlc_r4 -C -E myhdr.h > myout


  • #error directives are used to produce compile time error. delete or commnent out the line containing #error directive and the program will compile.
  • The compiler must display the text "You have defined A to 100" or it isn't following the C standard. At any rate, it should not let the program compile, which seems to be the case.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!