c语言中宏调用比函数调用,C语言-宏定义与使用分析
1、C语言中的宏定义
#define是预处理器处理的单元实体之—
#define定义的宏可以出现在程序的任意位置
#define定义之后的代码都可以使用这个宏
2、定义宏常量
#define定义的宏常量可以直接使用
#define定义的宏常量本质为字面量
下面的宏常量定义正确吗?
#define ERROR -1
#define PATHl "D:\test\test.c"
#define PATH2 D:\test\test.c
#define PATH3 D:\test\
test.c
3、实例分析
宏定义分析 21-1.c
#define ERROR -1
#define PATH1 "D:\test\test.c"
#define PATH2 D:\test\test.c
#define PATH3 D:\test\
test.c
int main()
{
int err = ERROR;
char* p1 = PATH1;
char* p2 = PATH2;
char* p3 = PATH3;
}
预处理器不会进行语法检查只是简单的文本替换,即这些宏定义都正确!!但编译器会报错!!
4、宏定义表达式
#define表达式的使用类似函数调用
#define表达式可以比函数更强大
#define表达式比函数更容易出错
下面的宏表达式定义正确吗?
c语言中宏调用比函数调用,C语言-宏定义与使用分析相关推荐
- verilog语言中的@什么意思 verilog语言中的@什么意思
verilog语言中的@什么意思 verilog语言中的@什么意思 2012-05-27 22:47 在英语中@ 读at,也就是在--的时候,这个小学应该学过,对吧.verilog中@ 的含义就是触发 ...
- c加加属于面向对象的程序设计语言吗,下列语言中属于面向对象的程序设计语言是______。A、Visual BasicB、PASCALC、CD、FORTRAN...
下列语言中属于面向对象的程序设计语言是______.A.Visual BasicB.PASCALC.CD.FORTRAN 更多相关问题 经纬仪如存在指标差,将使观测结果出现( ). 德治的约束作用主要 ...
- Linux内核代码宏定义,Linux Kernel源代码中与段有关的重要宏定义
__init, __initdata等属性标志,是要把这种属性的代码放入目标文件的.init.text节,数据放入.init.data节──这一过程是通过编译内核时为相关目标平台提供了xxx.lds链 ...
- c语言中调用函数fn,C语言常见的函数调用
C语言常见的函数调用 isatty,函数名,主要功能是检查设备类型,判断文件描述词是否为终端机. 函数名: isatty 用 法: int isatty(int desc); 返回值:如果参数desc ...
- python语言中函数在调用前必须先定义吗_Python函数必须先定义,后调用说明(函数调用函数例外)...
java开发者在定义类中的方法时,不会关心方法的定义相对于调用语句的位置. 但是python中需要注意: 函数必须先定义.后调用(函数调用函数例外). 如下为示例说明: 1.python函数的应用一般 ...
- c语言中的指针语法,C语言中指针的用法介绍
C语言中指针的用法介绍 for(int i=0;i { num+=*s;s++; } return num; ) 这个例子中的函数 fun统计一个字符串中各个字符的 ASCII 码值之和.前面说了,数 ...
- c语言中转向的指针,C语言指针碎碎念
一个变量的地址称为该变量的指针. 一个变量专门用来存放另一个变量的地址(即指针),则称这个变量为指针变量. 指针和指针变量是两个截然不同的概念. int i = 3 :而且 i 被存储在内容的 200 ...
- 语言中拟合函数 计算aic_Go语言函数深度解析(中)
上回函数深度解析给大家聊了一些函数的基本知识,不知道还有没有人记得,不记得赶紧回去复习! 他们是 go语言中函数的基本原理 单/多个同/不同类型参数 单/多个同/不同类型返回值 值传递,引用传递 函数 ...
- c语言中合法转义字符,判断c语言合法转义字符
满意答案 UniTubeStar 2018.01.11 采纳率:45% 等级:12 已帮助:5850人 单独一个 \ 不是合法转义字符. 转义字符 就是指 反斜杠后面的字符,不按原意 解释,而要 ...
最新文章
- 知乎高赞:OracleJDK和OpenJDK有什么区别?网友:不愧是大神的回答~
- Oracle执行exists优化,PHP_解决Oracle性能优化中的问题, 在Oracle性能优化时,用exists - phpStudy...
- 【深度学习笔记】ROC曲线 vs Precision-Recall曲线
- 统计学习方法 第一章 学习笔记
- java中compare语句的用法_Java RuleBasedCollator compare()用法及代码示例
- 爱计算机辅助筛查肺结节,计算机辅助检测系统提高CT肺结节检出方式的研究
- 从0开始架构一个IOS程序——iOS 根据文字的长度来动态设置UILabel的大小
- URL Routing
- Python高手之路【十二】面向对象设计模式
- FastDfs之TrackerServer的详细配置介绍
- Java中的StringBuffer、StringBuilder和包装器类型
- minhash算法 java_minhash算法
- 最容易被你忽略的Mac神级功能!Mac访达里一切皆可标记
- JDK版本变化也太快了,意义有多大?
- 软件破解技术之API替换
- c语言实现AD采样后FFT算法,实践“玩转FFT算法...任你移植”,正确AD采样及生成函数表...
- bert之我见-attention
- videobox,一个错误的名字
- 冒泡法java程序图片_正宗冒泡法-java语言实现
- 12.0_[Java 多态]-多态/子类父类互转/基本引用类型互转/ instanceof 运算符
热门文章
- html页面布局之flex弹性盒子
- d3dx9_34.dll丢失,找不到(解决方案)
- jquery实现点击复制文本
- 记录一下开发邮件模板兼容outlook客户端以及其他主流邮箱客户端所引发的无数问题,头发要薅没了
- 牙齿间隙变大怎么办_牙齿间隙变大怎么办?
- 牙齿美白有哪些典型症状?
- 【Android】Coil:为kotlin而生的图片库
- html中icon标签作用,label标签的作用是什么?
- The connection to adb is down和no configs match configspec错误
- CSS元素上下左右居中的几种方式