学习Linux C编程之预处理与结构体

1、宏定义的位置及作用域? 
宏定义必须写在函数之外,其作用域为宏定义命令起到源程序结束,也可以用“#undef”命令终止。

2、文件包含命令“”与<>的区别 
使用<>表示在包含文件包含目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目录去查找。 
使用“”表示首先在当前的源文件目录中查找,若未找到才到包含目录中查找。

3、什么是结构体 
将一些相关联的数据打包成一个整体,方便使用,这种多个数据组合起来的一个整体其表现形式就是一个结构体

结构体的一般定义形式为:
 
  struct 结构体名{
      
     类型名1 成员名1;
     
     类型名2 成员名2;
     
     ……
     类型名n 成员名n;   
 };
 struct是关键字,是结构体类型的标志。
例如,定义一个Car
struct Car {
    int wheels; // 轮子数
    int speed; // 速度
};
定义结构体变量:
struct Car {
    int wheels; // 轮子数
    int speed; // 速度
}car;//直接定义变量
//单独定义结构体变量
struct Car car

4、结构体与数组比较 
都是由多个元素组成; 
各个元素在内存中的存储空间是连续的; 
数组中各个元素的数据类型相同,而结构体中的各个元素的数据类型可以不相同。

5、结构体与函数
如果结构体作为函数参数,只是将实参结构体所有成员的值对应地赋值给了形参结构体的所有成员
 修改函数内部结构体的成员不会影响外面的实参结构体

与函数的对比:
1> 宏定义不涉及存储空间的分配、参数类型匹配、参数传递、返回值问题。
2> 函数调用在程序运行时执行,而宏替换只在编译预处理阶段进行。所以带参数的宏比函数具有更高的执行效率。

6、#define和typedef的区别 
#define在C语言中只是为了定义常量 
typedef是作为了增加可读性而为标识符另起的新名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值