C语言进阶4:宏定义

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

1、宏定义是什么?

宏是用来表示一段代码的标识符。
宏也是标识符,也要满足标识符的规则。但通常习惯使用大写字母和下划线命名。

2、宏定义怎么用?

宏定义通常有三种用法:

(1)当作常量使用。
(2)当作函数使用。
(3)编译预处理。

2.1 宏定义常量

2.1.1 预定义宏

No. 预定义宏 作用
1 LINE 当前所在文件的行号
2 FILE 表示当前源文件
3 DATE 文件被编译的日期
4 TIME 文件被编译的时间
printf("%s:%d",__FILE__,__LINE__);
printf("%s:%s",__DATE__,__TIME__);

2.1.2 自定义宏

除了使用标准定义的宏,可以使用#define指令用来定义一个宏。

(1)语法

#define 标识符 值

(2)示例

#define PI 
关于C语言宏定义的部分 在C语言中,宏定义(Macro Definition)是由预处理器处理的一种编译时文本替换机制。代码简化通过宏定义可以简化复杂的代码或表达式,使代码更加易于理解和维护。例如,可以定义一个宏来表示一个复杂的计算公式,这样在代码中就可以直接使用宏名而不是整个公式。#define PI3.14159常量定义宏定义常用于定义常量,这些常量在编译时会被替换,避免了硬编码。使用宏定义常量可以提高代码的可读性和可维护性。100条件编译。 阅读详情

相关推荐

什么是 C 语言中的宏定义

在 C 语言中,宏定义是一种预处理指令,用于将一个标识符定义为一个特定的文本序列(称为宏体)。在程序编译之前,预处理器会将程序中出现的宏标识符替换为对应的宏体。提高代码的可读性和可维护性,通过给复杂的表达式或常用的常量赋予有意义的名称。方便代码的修改,如果需要更改某个常量或表达式,只需修改宏定义一处即可。C 语言中的宏定义主要分为两种类型:对象宏(也称为变量宏)和函数宏。对象宏对象宏用于定义常量或简单的表达式。其定义的一般形式为:# define 标识符 替换文本#define PI。

技术笔记 1655

C语言笔记

 当函数前面加上static时,表示该函数仅在本文件里被调用,不会与其它文件相同函数发生冲突  调用库的头文件使用<>,调用自己创建的头文件使用"" memset memset对于强制转换类型不同的指针,赋值是有误的 例如: #include "stdio.h" #include "string.h" int main() { unsigned char...

weixin_34302798的博客 272

【C语言宏定义详解

宏定义是C语言中强大的预处理工具,能够提高代码的灵活性和可维护性。然而,它们也带来了潜在的风险,如宏名冲突、运算优先级问题和调试困难。在使用宏定义时,务必要仔细考虑它们的优缺点,采取适当的措施来避免潜在问题。

LuckiBit 8660

使用条件编译指令在C语言中判断宏的定义和值

是一个条件编译指令,它用来进行预处理时的条件判断。如果宏TEST_MODE的值等于1,那么它就会进入条件为真的代码块中执行相应的操作;如果宏TEST_MODE的值不等于1,那么它就会进入条件为假的代码块中执行其他的操作。如果宏TEST_MODE已经被定义,那么它就会进入条件为真的代码块中执行测试相关的操作;如果宏TEST_MODE未被定义,那么它就会进入条件为假的代码块中执行其他的操作。在C语言中,可以使用条件编译指令来根据宏的定义来选择不同的代码块。另外,如果想要判断宏的值是否等于某个常量,可以使用。

光明 5348

C++宏定义详解

博客转载至:http://blog.chinaunix.net/uid-21372424-id-119797.html 一、#define的基本用法 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,...

maozhuxigood 543

宏定义】——判断宏的值是否为特定值

用于判断宏的值是否为特定值。

tyustli 3528

C语言宏定义

C语言宏定义 基本介绍 1)#define 叫做宏定义命令它也是C语言预处理命令的一种,所谓宏定义,就是用一个标识符来表示一个字符串。如果在后面的代码中出现了该标识符,那么就全部替换成指定的字符串。 2)#define N 100 就是宏定义,N为宏名,100是宏的内容(宏所表示的字符串)。在预处理阶段,对程序中所有出现的“宏名”,预处理器都会用宏定义中的字符串区代换,这称为“宏替换”或“宏展开”。 宏定义是由源程序中的宏定义命令#define完成的,宏替换是由预处理程序完成的。 宏定义的形式 #defin

qq_45860879的博客 5万+

C语言宏定义的使用

1. 引言 1.1 宏定义的基本语法 1.2 宏定义的优点 1.3 宏定义的缺点 1.4 宏还是函数 2 使用宏时的注意点 2.1 算符优先级问题 2.2 分号吞噬问题 2.3 宏参数重复调用 2.4 对自身的递归引用 3. 宏函数的集中特定语法 3.1 利用宏参数创建字符串:”#运算符” 3.2 预处理器的粘合剂:”##运算符” 3.3 可变宏:… 和_VA_ARGS 4 宏的...

imgosty的博客 15万+

C语言宏定义详解

C语言宏定义详解

qq_28576837的博客 2万+

C语言宏定义讲解

详细讲解了C语言的两大宏定义

派森世界啃Bug(草)的可爱神兽~ 9128

深入C语言宏定义:从进阶技巧到避坑指南

本文深入 C 语言宏,介绍字符串化、do-while(0)等进阶技巧,分析参数副作用、优先级等常见陷阱,给出适用场景、替代方案及编码规范等最佳实践,助开发者驾驭这把双刃剑。

科技改变人类,技术成就未来 1万+

C语言进阶——4.宏定义

C语言进阶——3.宏定义

Sunrise的博客 951

宏定义和判断

本篇主要讨论C中的宏定义和条件判断 你可以用下面的代码进行测试 #include <stdio.h> //#define __B__ (0) ==》X1=11, X2=22 //#define __B__ (1) ==》X1=11, X2=21 #define __B__ ==>编译错误 #if defined(__A__) #define X1...

zp33 7666

#if defined 宏定义常用“与”、“或”、“非”判断

1.“与”判断 (即判断多个宏是否同时定义) #if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \ defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \ defined(__POCC__) || defined(__S...

Postgres 数据库内核开发工程师 1万+

C语言宏定义技巧(常用宏定义)(转)

写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。 1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H   //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef  unsigned c

张尹CSDN专栏 662

判断相等的宏

#define EQ(key1, key2) (((key1) > (key2)) - ((key1) < (key2)))

msgrev的专栏 2580

C语言宏定义+条件编译

5.1 带有条件和循环的宏在C语言中,宏定义可以非常复杂,并且可以用于生成相当复杂的代码片段。通过结合参数、操作符、条件和嵌套宏,可以创建出功能强大的宏。\ int i;i

IT_demon的博客 4137
上一篇: C语言进阶3:二维指针
下一篇: C语言进阶5:头文件
软软kk
博客等级 码龄7年 87粉丝 88原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值