C语言中宏的作用

摘要:
在C语言#define机制中包括了一个规定,与允许把参数替换到文本中,这种实现通常称为宏或宏定义。宏的作用1.替换作用:在程序中使用宏可以进行快速的替换。注意事项:1.定义宏时在行末不必加分号,如果有分号则连分号也一起替换。

在C语言#define机制中包括了一个规定,与允许把参数替换到文本中,这种实现通常称为宏或宏定义。下面是宏的声明方式:

#define name(parameter-list) stuff

其中 parameter-list的左括号必须与name紧邻,如果中间有空白,parameter-list就会被解释为stuff的一部分。

宏的作用

1.替换作用:在程序中使用宏可以进行快速的替换。

2.执行简单的计算使用宏在程序的规模和速度方面都更胜一筹。

3.条件编译:可以通过宏来选择某些语句进行翻译或者忽略。

下面是一个示例小程序:

1 #include<stdio.h>
2 
3 #define NUMBER 5
4 #define SQUARE(x)  (x)*(x)
5 #define  ON
6 
7 voidmain()
8 {
9     int t=NUMBER;
10     int m=SQUARE(t);
11 
12 #ifdef ON
13     printf("%d
",m);
14 #else
15     printf("%d
",t);
16 #endif 
17 
18 }

运行结果:

C语言中宏的作用第1张

两种情况分别是对ON进行声明和不声明的结果。

注意事项:

1.定义宏时在行末不必加分号,如果有分号则连分号也一起替换。

2.如果是带参数的宏定义,则要给宏定义中的每个参数加上括号,并在宏完整定义上再加一个括号。

免责声明:文章转载自《C语言中宏的作用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇windows CIFS sabma协议识别mysql游标循环的使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

windows下C语言编程获取磁盘(分区)使用情况

windows下编程获取磁盘(分区)使用情况 windows下编程获取磁盘(分区)使用情况 GetLogicalDriveStrings函数 使用示例 获取需要的缓冲区长度示例 获取所有驱动器号示例 GetDriveType函数使用示例 GetDiskFreeSpaceEx 函数使用示例 linux下可以使用命令df -h来获取各个(...

Node.js源码初探~我很好奇

前言: 最近在看Node.js,看了一段时间后便想着看看Node.js源码,自己本地调试调试;现在便说说这个过程中的坑,以及一些需要注意的地方;       Node.js需要一定C++基础,建议看完C++Primer再看,否则V8的好多表达方式,指针,引用,模板之类的会看不懂;       代码已上传GitHub地址:   https://github....

(转)C语言中格式化日期时间asctime()函数详细讲解

函数原型:char *asctime(const struct tm *tblock); 功能说明:将tm结构类型时间日期转换为ASCII码。 头文件: 参数说明:语法:asctime[必要参数] 必要参数的具体说明如下: tblock:待转换的时间指针,tblock为一tm结构型指针。 返回值:返回由tm结构中的日期和时间转换成的字符串的地址,该字符串的...

C语言中 有符号数、无符号数、整数溢出 (转)

[cpp]view plaincopyprint? #include<stdio.h>   void main()   {    int l=-1;    unsigned int c=135;   printf("%u ",l+c);   }   这个的结果134,而不是我之前认为的很大的正数,实际上需要注意的是-1(0xf...

值得推荐的C/C++框架和库 (真的很强大)

  值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。 下载链接:http...

C语言单链表实现19个功能完全详解

 * list.c//#include "stdafx.h"#include "stdio.h"#include <stdlib.h>#include "string.h"typedef int elemType ;/****************************************************************...