关于#define宏的有趣的事情

这篇博客探讨了C语言中#define宏的有趣特性,包括它的两种基本类型:简单的字符串替换和类似函数的行为。作者提醒注意宏没有返回值且不应使用括号,同时介绍了#、##和#@在宏中的特殊作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Something interesting about the MACRO in C Programming

This Afternoon I continued the learning of the macro. Using the same PPT demonstrated during the class on Tuesday, I think I’ve get more:

So, I’d like to record something.

It is mainly about #define.

#define

This will definitely make programming more efficient.

There are two basic types of macro:

#define MACRO String

This type of macro is quite simple, it just replace “Macro” with “String” in your code.

#define MACRO(argument1, argument2, …) String containing the arguments

This type of macro is more like a function.

But keep in mind that this is not a function, and what is does is still the replacement of strings in your code.

What’s more, users should beware of the returning value.

This version doesn’t have return values, and it is more safer:

#define _TEST(x,y) \
    do{     \
    (some codes containing x&y) \
    }while(0)

Beware that no ; in macros, and if you add a ; , is will be worked into the replacement.

Others:

#

It turns the things behind into a string.

##

It connects the macros before and behind.

#@

It turns the thing behind into a character.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值