【编程基础】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 条评论
登录 后参与评论

相关文章

来自专栏hbbliyong

C学习笔记(1)-结构体、预处理与多文件结构程序设计

一、结构体的定义与使用 #include <stdio.h> //定义结构体(类似模板) typedef struct { char name[50]; ...

2614
来自专栏gaoqin31

jQuery源码浅析

如果说php是世界上最好的语言,那么javascript无疑可以称为世界上最飘逸的语言,最近看了下jQuery的源码,实现了一个简陋的jQuery。我觉得要看懂...

1223
来自专栏木制robot技术杂谈

谈一谈Python中str()和repr()的区别

前言 在学习BeautifulSoup文档的时候发现了一个以前不常见的Python内建函数repr(),带着好奇对这个内建函数进行了一番搜索和学习。 总结 s...

3054
来自专栏xcywt

关于C++编译链接和模板函数

一,关于编译链接 编译指的的把编译单元生成目标文件的过程 链接是把目标文件链接到一起的过程 编译单元:可以认为是一个.c或者.cpp文件。每个编译单元经过预...

18410
来自专栏从流域到海域

《笨办法学Python》 第17课手记

《笨办法学Python》 第17课手记 本节内容是前几节内容的复习和综合,此外引入了exists函数。 原代码如下: from sys import argv ...

1926
来自专栏有趣的django

11.Flask钩子函数

     在Flask中钩子函数是使用特定的装饰器的函数。为什么叫做钩子函数呢,是因为钩子函数可以在正常执行的代码中,插入一段自己想要执行的代码,那么这种函数就...

743
来自专栏从零开始学自动化测试

python笔记22-literal_eval函数处理返回json中的单双引号

在做接口测试的时候,最常见的接口返回数据就是json类型,json类型数据实际上就是字串,通常标准的json格式是可以转化成python里面的对应的数据类型的 ...

1041
来自专栏有趣的Python

代码模板:python-基础-3(循环控制)

3 循环控制 循环控制主要包括三种: pass 、 continue 、 break 。 pass 表示什么也不做,只是占一行代码的位置; continu...

29410
来自专栏破晓之歌

VUE一些积累 原

Vue.js在模板表达式中限制了,绑定表达式最多只能有一条表达式,但某些数据需要一条以上的表达式运算实现,此时就可以将此数据放在计算属性(computed)当中...

793
来自专栏python3

python 字符编码与转换

比如一款游戏《大话西游》用的是gbk编码开发的。出口到欧美国家,是无法直接运行的。

872

扫码关注云+社区