02,预处理指令


1.常用的预处理指令
    #include ...  包含头文件
    #define ...   进行宏定义
    #undef ...    取消宏定义
    #ifndef ...   如果没有定义
    #ifdef ...    如果定义
    #elif  ...    否则如果
    #else  ...    否则
    #endif ...    结束如果
    ... ...

#line 整数n(了解)
主要用于将下一行的行号设置为第n行;
主要用于调试阶段,可以确保整个调试过程中出错的行号一直保持不变;

#warning 字符串
主要用于产生一个警告信息

#error 字符串
主要用于产生一个错误信息

注意:
   #if - 主要用于在预编译阶段进行条件判断
   if  - 主要用于在运行阶段进行条件判断

#pragma GCC dependency 文件名
主要用于让当前文件依赖于指定的文件名,
如果指定文件的最后一次修改时间晚于当前文件,则产生警告信息;

如:
   vi show.c文件:
      void show(void)
      {
          printf("我是帅哥我怕谁\n");
      }
   vi main.c文件:
      #pragma GCC dependency "show.c"
      int main(void)
      {
          show();
          return 0;
      }

#pragma GCC poison 标识符
主要用于将后面指定的标识符设置为毒药,一旦使用则产生错误信息;
    
#pragma pack(整数n)
主要用于调整结构体的对齐和补齐方式;
结构体的对齐和补齐原则是为了提高存取数据的效率,
带来的缺点就是浪费内存空间,是一种典型的牺牲空间来换取时间的策略;

调整对齐和补齐方式的本质就是为了节省内存空间,但是会浪费时间;     

1.3 常用的预定义宏
   __FILE__ 获取当前宏所在的文件名    %s
   __LINE__ 获取当前宏所在的行号      %d
   __TIME__ 获取当前宏所在文件的最后一次编译时间  %s
   __DATE__ 获取当前宏所在文件的最后一次编译日期  %s
   ... ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值