C语言 常用知识点摘要 (更新中)

本文详细介绍了C++中的条件编译指令ifdef和ifndef的使用方法及其应用场景,同时深入探讨了共用体(union)的概念、声明方式及特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

* 对于C中头文件专门见到的 ifdef  ,   ifndef

这两条指令的使用在c++里面叫条件编译,这两条指令叫条件预处理指令; 条件编译是能够让程序控制预处理指令的执行和程序代码的编译.每一个条件预处理指令计算一个常量整数表达式的值,以决定代码是否编译.不能在预处理指令 中计算强制类型转换表达式,sizeof表达式和枚具常量.
条件预处理指令的结构与if选择结构非常相似.


如:
#if   !defined(null)       //是否定义了null
        #defined   null   0     //如未定义,则定义null为0

     #endif                               //结束条件编译


#if   define(name)  == #ifdef

#if   !define(name)  == #ifndef


* union :C/C++语言关键字。

共用体声明和共用体变量定义与结构体十分相似。其形式为: 
 union 共用体名{ 
     数据类型 成员名; 
  数据类型 成员名; 
  ... 
  } 变量名; 

共用体表示几个变量共用 一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。
在union中,所有的共用体成员共用 一个空间,并且同一时间只能储存其中一个成员变量的值。
  
下例表示声明一个共用体foo:
  union foo{
  int i;
  char c;
  double k;
  };

  再用已声明的共用体可定义共用体变量。
  例如用上面说明的共用体定义一个名为bar的共用体变量, 可写成:
  union foo bar;

  在共用体变量bar中, 整型变量i和字符变量c共用同一内存位置。
  当一个共用体被说明时, 编译程序自动地产生一个变量, 其长度为联合中最大的变量长度
以上例而言,最大长度是double数据类型,所以foo的内存空间就是double型的长度。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值