黑马程序员-C语言中有关宏的一些注意事项

本文介绍了C语言中宏定义的一些关键注意事项,包括有参宏的宏名与形参间不应有空格、宏定义后不应加分号、推荐使用括号包裹参数、宏名通常全大写以及宏的作用域和如何通过`#undef`取消宏定义。
用途:
        源程序在编译之前,由预处理程序对我们写的源代码进行处理,将函数中出现宏名的地方,用宏定义时的字符串替换,注意替换的时候,定义的是什么样的就要替换成什么样,就是一个简简单单的替换。不能人为的添加任何东西比如括号
宏分类:
            有参宏:#define TEST(a,b) a+b     无参宏:#define TEST 9
宏定义的使用注意:  
  • 有参宏的宏名和形参之间不能有空格
  • 宏定义是系统指令,后面不能有分号
  • 有参宏宏的参数最好用括号括起来
  • 宏名习惯全大写
  • 有参宏的形参不会分配内存空间,故不用指定其类型
  • 宏是有作用域的  #undef 宏名 可以取消宏定义,取消后宏名在该源程序就失效
 宏和typedef的区别:
        宏就是一个简单的替换,而typedef是为一个类型指定了新的名字,它就代表了一个数据类型,可
        以用来定义变量
范例:
        #include <stdio.h>
        #define INT1 int*   //定义一个宏,宏名是INT1
        typedef int* TINT;  //int起一个别名 TINT
        int main(int argc, const char * argv[]) {
    
        int num = 10;
        //使用宏定义变量
        INT1 a,b;     //int* a,b
          //a是指针
        a = &num;
         //b是普通的变量
        b = num;
    printf("a = %d,b = %d\n",*a,b);
    //使用别名定义变量
    TINT a1,b1;   //int *a1;int* b1;
    a1 = &num;
    b1 = &num;   //a1 和 b1 都是指针
    printf("a1 = %d,b1 = %d\n",*a1,*b1);
    return 0;
    }
### 黑马程序员 C语言 学习资料概述 黑马程序员提供了丰富的C语言学习资源,涵盖了从基础到高级的各种知识点。对于初学者来说,了解如何正确使用输入输出函数是非常重要的。 #### 输入函数 `scanf` 的注意事项 当使用 `scanf` 函数读取数据时,需要注意格式字符串中的换行符 `\n` 不应被包含在第一个参数内[^2]。例如: ```c // 正确的方式 scanf("%d", &a); ``` 错误的做法是在 `%d` 后面加上不必要的换行字符,这会导致程序等待更多的输入而无法正常结束。 #### 输出函数 `printf` 使用说明 关于 `printf` 函数用于不同类型的数值输出,可以参考如下占位符及其对应的解释[^3]: - `%d`: 输出一个有符号的十进制整型类型数据 - `%hd`: 输出一个有符号的十进制 short int 类型的数据 - `%ld`: 输出一个有符号的十进制 long int 类型的数据 - `%o`: 输出一个有符号的八进制整型类型数据 - `%x`: 输出一个有符号的小写字母表示的十六进制整型类型数据 - `%X`: 输出一个有符号的大写字母表示的十六进制整型类型数据 - `%u`: 输出一个无符号的十进制整型类型数据 - `%f`: 输出浮点数,默认六位小数 - `%.nf`: 控制定点记法中小数部分显示的有效数字数量(其中 n 是指定的数量) - `%lf`: 输出双精度浮点数 示范代码片段展示了基本的条件判断以及简单的整数输出操作[^1]: ```c #include <stdio.h> int main() { int a = 1; int b = 2; if (a < b) { printf("%d\n", a); // 如果 a 小于 b,则打印 a 的值 } return 0; } ``` 此段代码首先包含了标准输入输出库 `<stdio.h>` ,接着定义了一个名为 `main()` 的主函数,在该函数体内声明并初始化两个整形变量 `a` 和 `b` 。通过比较这两个变量大小来决定是否执行后续语句块内的指令;如果满足条件则调用 `printf()` 来向控制台输出相应的信息。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值