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语言-宏定义与使用分析相关推荐

  1. verilog语言中的@什么意思 verilog语言中的@什么意思

    verilog语言中的@什么意思 verilog语言中的@什么意思 2012-05-27 22:47 在英语中@ 读at,也就是在--的时候,这个小学应该学过,对吧.verilog中@ 的含义就是触发 ...

  2. c加加属于面向对象的程序设计语言吗,下列语言中属于面向对象的程序设计语言是______。A、Visual BasicB、PASCALC、CD、FORTRAN...

    下列语言中属于面向对象的程序设计语言是______.A.Visual BasicB.PASCALC.CD.FORTRAN 更多相关问题 经纬仪如存在指标差,将使观测结果出现( ). 德治的约束作用主要 ...

  3. Linux内核代码宏定义,Linux Kernel源代码中与段有关的重要宏定义

    __init, __initdata等属性标志,是要把这种属性的代码放入目标文件的.init.text节,数据放入.init.data节──这一过程是通过编译内核时为相关目标平台提供了xxx.lds链 ...

  4. c语言中调用函数fn,C语言常见的函数调用

    C语言常见的函数调用 isatty,函数名,主要功能是检查设备类型,判断文件描述词是否为终端机. 函数名: isatty 用 法: int isatty(int desc); 返回值:如果参数desc ...

  5. python语言中函数在调用前必须先定义吗_Python函数必须先定义,后调用说明(函数调用函数例外)...

    java开发者在定义类中的方法时,不会关心方法的定义相对于调用语句的位置. 但是python中需要注意: 函数必须先定义.后调用(函数调用函数例外). 如下为示例说明: 1.python函数的应用一般 ...

  6. c语言中的指针语法,C语言中指针的用法介绍

    C语言中指针的用法介绍 for(int i=0;i { num+=*s;s++; } return num; ) 这个例子中的函数 fun统计一个字符串中各个字符的 ASCII 码值之和.前面说了,数 ...

  7. c语言中转向的指针,C语言指针碎碎念

    一个变量的地址称为该变量的指针. 一个变量专门用来存放另一个变量的地址(即指针),则称这个变量为指针变量. 指针和指针变量是两个截然不同的概念. int i = 3 :而且 i 被存储在内容的 200 ...

  8. 语言中拟合函数 计算aic_Go语言函数深度解析(中)

    上回函数深度解析给大家聊了一些函数的基本知识,不知道还有没有人记得,不记得赶紧回去复习! 他们是 go语言中函数的基本原理 单/多个同/不同类型参数 单/多个同/不同类型返回值 值传递,引用传递 函数 ...

  9. c语言中合法转义字符,判断c语言合法转义字符

    满意答案 UniTubeStar 2018.01.11 采纳率:45%    等级:12 已帮助:5850人 单独一个 \ 不是合法转义字符. 转义字符 就是指 反斜杠后面的字符,不按原意 解释,而要 ...

最新文章

  1. 知乎高赞:OracleJDK和OpenJDK有什么区别?网友:不愧是大神的回答~
  2. Oracle执行exists优化,PHP_解决Oracle性能优化中的问题, 在Oracle性能优化时,用exists - phpStudy...
  3. 【深度学习笔记】ROC曲线 vs Precision-Recall曲线
  4. 统计学习方法 第一章 学习笔记
  5. java中compare语句的用法_Java RuleBasedCollator compare()用法及代码示例
  6. 爱计算机辅助筛查肺结节,计算机辅助检测系统提高CT肺结节检出方式的研究
  7. 从0开始架构一个IOS程序——iOS 根据文字的长度来动态设置UILabel的大小
  8. URL Routing
  9. Python高手之路【十二】面向对象设计模式
  10. FastDfs之TrackerServer的详细配置介绍
  11. Java中的StringBuffer、StringBuilder和包装器类型
  12. minhash算法 java_minhash算法
  13. 最容易被你忽略的Mac神级功能!Mac访达里一切皆可标记
  14. JDK版本变化也太快了,意义有多大?
  15. 软件破解技术之API替换
  16. c语言实现AD采样后FFT算法,实践“玩转FFT算法...任你移植”,正确AD采样及生成函数表...
  17. bert之我见-attention
  18. videobox,一个错误的名字
  19. 冒泡法java程序图片_正宗冒泡法-java语言实现
  20. 12.0_[Java 多态]-多态/子类父类互转/基本引用类型互转/ instanceof 运算符

热门文章

  1. html页面布局之flex弹性盒子
  2. d3dx9_34.dll丢失,找不到(解决方案)
  3. jquery实现点击复制文本
  4. 记录一下开发邮件模板兼容outlook客户端以及其他主流邮箱客户端所引发的无数问题,头发要薅没了
  5. 牙齿间隙变大怎么办_牙齿间隙变大怎么办?
  6. 牙齿美白有哪些典型症状?
  7. 【Android】Coil:为kotlin而生的图片库
  8. html中icon标签作用,label标签的作用是什么?
  9. The connection to adb is down和no configs match configspec错误
  10. CSS元素上下左右居中的几种方式