导语:C初学者可能对预处理器没什么概念, 这是情有可原,下面是C中的预编译宏定义,一起来学习下吧: (一) 预处理命令简介 预处理命令由#(hash字符)开头, 它独占一行, #之前只能是空白符. 以#开头的语句就是预处理命令, 不以#开头的语句为C中的代码行. 常用的预处理命令如下: #define 定义一个预处理宏 ...
#import <Foundation/Foundation.h> //预编译 //宏定义 #define PI 3.1415926//#define 的第一种形式 #define S(a,b) (a*b)//#define 的第二种形式 //注意:1推荐用大写 驼峰命名法 k+PI 或 PI // 2宏不是变量 //pragma #pragma mark add函数 void add (int a,int b){ } #pragma mark sayH...
///main.c//宏定义#include<stdio.h>voidtest();/*预处理指令:在我们的文件翻译成0和1之前做的操作我们称之为预处理指令,一般以#号开头的(#include),包括:1.宏定义,2.条件编译,3.文件包含*//*1.宏定义(会在程序翻译成0和1之前,将所有宏名替换为宏的值)的格式 1.不带参数的宏定义:#define 宏名 ...
1、宏定义 在进行文本编辑时,“替换”是一个很有用的功能。C语言编译预处理程序也提供类似的功能:在源程序中,允许一个标识符(称为宏名)来表示一个语言符号字符串。在C语言中,“宏”分为无参数的宏和有参数的宏。2、无参数的宏定义:#define 宏名 字符串 1)宏名一般用大写,以便于与变量区别;2)...
可以看到,编译程序预处理的时候,碰到 print(10, 11);宏,就对宏进行替换展开,替换为:printf("x = %d, y = %d\n", x, y);但是,x, y 符号是宏的参数,所以,需要进行替换。根据宏定义的参数顺序是 print(x, y);所以,在调用print(10, 11)宏的时候,按顺序替换,使用10替换x,11替换y。
(1)宏名一般用大写 (2)使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组大小常用宏定义 ,可以理解数组大小代表具体含义,便于二次维护。 (3)预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。 (4)宏定义末尾不加分号; (5)宏定义写在函数的...
这里,MY_MACRO是你定义的宏名称,1是宏的值。$(inherited)确保了其他配置文件中定义的宏也会被继承。 保存并关闭.podspec文件,运行pod install命令使改动生效: 保存你的.podspec文件更改,并在项目目录中运行pod install命令。这将更新你的Pod项目,以包含新的预编译宏定义。以下...
此时,定义常量符号MAX,它代表1000这个数值。那么,有如下的代码:int a = MAX + 99;那么,在编译预处理的时候,就把MAX这个符号常量替换为1000数值。所以,代码就转换为:int a = 1000 + 99;在代码中,使用宏定义有一定的好处,如下:(1) 给常量命名,能够直观地表达该常量值的作用。例如,我们要定义一组...
在编译之前, CONNECT(a,1)被翻译为a1, CONNECT(a,2)被翻译为a2。 === #define ,#undef 分别用来定义常量、宏和取消常量、宏的定义。 #include 用来包含文件: #include <math.h>与#include “math.h”的区别在于遇到#include <math.h>命令时系统从缺省...