【编程基础】C语言常见宏定义

我们在使用C语言编写程序的时候,常常会使用到宏定义以及宏编译指令,有的可能比较常用,有的可能并不是很常用,是不是所有的C语言宏定义以及宏指令你都清楚呢?

指令 用途

# 空指令,无任何效果

#include 包含另外一个文件

#define 定义宏

#undef 取消已定义的宏

#if 如果给定条件为真,则编译下面代码

#ifdef 如果宏已经定义,则编译下面代码

#ifndef 如果宏没有定义,则编译下面代码

#elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码,其实就是else if的简写

#endif 结束一个#if……#else条件编译块

#error 停止编译并显示错误信息

#warning 显示警告信息但不停止编译,往往在以后必须注意的地方加入,可以随时提醒。

#运算符 出现在宏定义中的#运算符把跟在其后的参数转换成一个字符串。

##运算符 用于把参数连接到一起。预处理程序把出现在##两侧的参数合并成一个符号。

__FILE__ 包含当前程序文件名的字符串 __LINE__ 表示当前行号的整数 __DATE__ 包含当前日期的字符串 __STDC__ 如果编译器遵循ANSI C标准,它就是个非零值 __TIME__ 包含当前时间的字符串

另外在GCC下面,还有如下的宏定义:

__FUNCTION__ 表示当前的函数名

__VA_ARGS__ 表示可变参数输入

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-05-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IMWeb前端团队

还在纠结用不用ES6,不如来试试TypeScript

The only limits in our life are those we impose on ourselves. 弱爆的 ES6 in bro...

2250
来自专栏爱撒谎的男孩

Spring表达式和自动装配

4268
来自专栏Jerry的SAP技术分享

Java异常处理:如何写出“正确”但被编译器认为有语法错误的程序

文章的标题看似自相矛盾,然而我在“正确”二字上打了引号。我们来看一个例子,关于Java异常处理(Exception Handling)的一些知识点。

1273
来自专栏小狼的世界

Linux下不同文件编码的转换

字符编码(Character Encoding)可以说就是让某一字符序列匹配一个指定集合中的某一东西,常见的例子包括长短电键组合起来表示的摩斯电码(Morse ...

832
来自专栏IT技术精选文摘

跟着实例学习ZooKeeper的用法: 队列

使用Curator也可以简化Ephemeral Node (临时节点)的操作。Curator也提供ZK Recipe的分布式队列实现。 利用ZK的 PERSIS...

2617
来自专栏飞扬的花生

Json字符串和Json对象的简单总结

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机...

2066
来自专栏全华班

java学习手册-JAVA程序员笔试题(一)

JAVA程序员笔试题(一) 一、选择题: 1、类的成员变量要求仅仅能够被同一package下的类访问,应该使用哪个修辞词 A. Protected、B. Pub...

3825
来自专栏Java学习之路

05 Spring框架 依赖注入(二)

上一节我们讲了三种信息的注入,满足一个类的属性信息的注入,但是如果我们需要向一个实例中注入另一个实例呢?就像我们创建一个学生类,里边有:姓名,性别,年龄,成绩等...

2845
来自专栏LEo的网络日志

go常见错误总结

2715
来自专栏一名合格java开发的自我修养

springMVC参数绑定

处理器形参中添加如下类型的参数处理注解适配器会默认识别并进行赋值。 1 HttpServletRequest 通过request对象获取请求信息 2 Htt...

942

扫码关注云+社区