Practical C Programming - Chapter 10

C Preprocessor

All preprocessor commands begin with a hash mask (#) in column one and terminate at the end-of-line. A line may be continued by putting a backslash () at the end.

define statement

#define name substitute-text

In most case, a const statement is preferred over #define.
The #define directive can only define simple constants. The const statement can define almost any type of C constant, including things like structure classes.

The #define directive is, however, essential for things like conditional compilation and other specialized uses.

Conditional Compilation

#define DEBUG

#ifdef DEBUG
  printf("%d", some_value);
#endif

#undef DEBUG


#ifndef DEBUG
  printf("production code.");
#endif

#ifdef DEBUG
  printf("Test version. Debugging is on\n");
#else DEBUG
  printf("Production version\n");
#endif /* DEBUG */

The compiler switch -Dsymbol allows symbols to be defined on the command line.

cc -DDEBUG -g -o prog prog.c
cc -DMAX=10 -o prog prog.c

include files

The #include directive allows the program to use source code from another file.

Parameterized Macros

#define SQR(x) ((x) * (x))

No spaces must exist between the macro name (SQR) and the parenthesis. And always put parentheses, ( ), around the parameters of a macro.


the #if directive for conditional compilations
the #pragma directive for inserting compiler-dependent commands into a file.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值