C 语言宏定义用法总结
C语言宏定义实用总结
宏定义了一个代表特定内容的标识符。
预处理过程会把源代码中出现的宏标识符替换成宏定义时的值。
宏最常见的用法是定义代表某个值的全局符号。
宏的第二种用法是定义带参数的宏,这样的宏可以象函数一样被调用,但它是在调用语句处展开宏,并用调用时的实际参数来代替定义中的形式参数。
1.#define指令
#define MAX_NUM 10
int array[MAX_NUM];
for(i=0;i<MAX_NUM;i++) /*……*/
#define VERSION "Version 1.0 Copyright(c) 2003"
2.带参数的#define指令
#define IS_EVEN(n) ((n)%2==0)
#define MAX(x,y) ((x)>(y) ? (x) :(y))
#define Cube(x) (x)*(x)*(x)
可以是任何数字表达式甚至函数调用来代替参数x。
3.#运算符
#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。例如:
#define _STR(s) #s
#define WARN_IF(EXP) \
do{ if (EXP) \
fprintf(stderr, "Warning: " #EXP "\n"); } \
while(0)
那么实际使用中会出现下面所示的替换过程:
WARN_IF (divider == 0);
被替换为
do
{
if (divider == 0)
fprintf(stderr, "Warning" "divider == 0" "\n");
} while(0)
相关文档:
检查空格字符
#include <ctype.h>
int isspace ( int c );
http://www.cplusplus.com/reference/clibrary/cctype/isspace/
Checks if parameter c is a white-space character.For the purpose of this function, standard white-space characters are:
' '
(0x20)
space (SPC)
'\t'
(0x09)
horizontal tab ......
Authentication
Login with:New JS-Kit account
Google Friend Connect
Twitter account
FriendFeed account
Yahoo account
Blogspot URL
JS-Kit account
Haloscan account
OpenID
Dear visitor,
Thanks for your interest in C programming.
In this page, you will find a
list of interesting C p ......
原文地址:http://www.henryxu.com/post/1.html
C++的格式化字符串经常用作格式化数字的输出、字符串合并和转换等等很多场合。
1. 格式化规定符
━━━━━━━━━━━━━━━━━━━━━━━━━━
符号 &nbs ......
前两天写C++实习作业,突然发现I/O是那么的陌生,打了好长时间的文件都没有打开,今天终于有点时间了,决定找本书,好好整理一下,和大家共享。
C++I/O
C++支持两种I/O,第一种是从C语言继承来的,一种是由C++定义的面向对象I/O系统。
1、int getchar(void);返回一个整数值,也可以指定这个值为char变量,因为这个字符包 ......
格式: echo "\033[字背景颜色;字体颜色m字符串\033[0m"
例如:
echo "\033[41;36m something here \033[0m"
其中41的位置代表底色, 36的位置是代表字的颜色
那些ascii code 是对颜色调用的始末.
\033[ ; m …… \033[0m
字背景颜色范围:40----49
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
4 ......