变量和常量是程序处理的两种基本数据对象 变量 变量的意义就是确定目标并提供存放的空间。 变量的命名规则 1.变量名只能是英文字母(A-Z,a-z)和数字(0-9)或者下划线 _ 组成。 2.第一个字母必须是字母或者下划线开头。 3.变量名区分大小写。 4.不能使用关键字来命名。 -关键字列表 image.png image.png 基本...
1>宏名一般用大写字母,以便与变量名区别开来,但用小写也没有语法错误 2>对程序中用双引号扩起来的字符串内的字符,不进行宏的替换操作。比如: 在第1行定义了一个叫R的宏,但是第4行中"Radio"里面的'R'并不会被替换成10 3>在编译预处理用字符串替换宏名时,不作语法检查,只是简单的字符串替换。只有在编译...
在上面这个帖子中,作者首先想到的是通过宏定义,对变量进行重新命名。这样的做法,将会在编译之前的预处...
#define STR(s) _STR(s) // 转换宏 #define CONS(a,b) _CONS(a,b) // 转换宏 printf("int max: %s\n", STR(INT_MAX)); // INT_MAX,int型的最大值,为一个变量 #include<climits> 输出为: int max: 0x7fffffff STR(INT_MAX) --> _STR(0x7fffffff) 然后再转换成字符串; printf("%d...
注意这里连接的对象是Token就行,而不一定是宏的变量。比如你要做一个菜单项命令名和函数指针组成的结构体的数组,并且希望在函数名和菜单项命令名之间有直观的、名字上的关系。那么下面的代码就非常实用: structcommand {char*name;void(*function) (void);...
宏定义是一种预处理器指令,可以在编译时替换代码片段。虽然宏定义主要用于定义常量和函数,但也可以用来为变量创建别名: #define ALIAS a int a = 10; printf("Value of ALIAS: %dn", ALIAS); // 输出 10 在这里,#define ALIAS a创建了一个名为ALIAS的宏,它将在编译时被替换为a。然而,宏定义的作用范围...
4. 删除宏定义指令 有时候先定义了宏,后面我又重新定义了和宏名一样的变量,会发生什么情况呢?这里编译器会给变量 N 标出红色波浪线,给出错误提示:应输入标识符。因为宏定义了 N 为 5,那么在编译器中有出现的 N 的地方都会被替换成数字 5。所以这里就变成 5=3,很显然 5 不符合标识符的规则,就会...
预处理指令 #define是一个明显常量定义指令,用于定义符号常量(symbolic constant)以及明显常量(manifest constant)。每条#define语句都可以分为三个组成部分:#define、macro、替换列表(replacementlist)。 宏(macro)的命名规则遵从C语言变量的命名规则。预处理在编译之前,宏在此过程中会被展开,也就是被替换成相应的替换...