700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C语言 define 定义函数(多行书写) - C语言零基础入门教程

C语言 define 定义函数(多行书写) - C语言零基础入门教程

时间:2023-10-15 00:50:09

相关推荐

C语言 define 定义函数(多行书写) - C语言零基础入门教程

目录

一.define 简介二.define 定义多行函数 1.简单使用2.经典案例 三.猜你喜欢

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

一.define 简介

C语言中,除了可以用#define定义一个标识符来表示一个常量,还可以用#define定义函数,例如:

//定义常量#define MAX_VALUE 100 //定义整型变量MAX_VALUE值为100#define USER_NAME "huge" //定义字符串变量USER_NAME值为"huge"#define PI 3.1415926 //定义浮点数变量PI值为3.1415926//定义简单函数#define MAX(a,b) (a>b)?a:b //取两个数最大值#define MIN(a,b) (a<b)?a:b //取两个数最小值//定义复杂多行的函数#define MACRO(arg1, arg2) do { \\stmt1; \stmt2; \\} while(0)关键是要在每一个换行的时候加上一个 "\ "

凡是以#开头的均为预处理指令,预处理又叫预编译。预编译不是编译,而是编译前的处理。这个操作是在正式编译之前由系统自动完成的。

使用define定义一个多行的复杂函数,关键是要在每一个换行的时候加上一个\

二.define 定义多行函数

1.简单使用

/******************************************************************************************///@Author:猿说编程//@Blog(个人博客地址): //@File:C语言教程 - C语言 define 定义函数(多行书写)//@Time:/06/27 08:00//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!/******************************************************************************************/#include "stdafx.h"#include <stdio.h>//单行书写//#define swap(x,y) do{x=x+y;y=x-y;x=x-y;}while(0)//多行书写#define swap1(x,y) \do{\x=x+y;\y=x-y;\x=x-y;\}while(0)int main(){int a = 2, b = 3;printf("交换前a=%d\t,b=%d\n", a, b);swap1(a, b);printf("交换后a=%d\t,b=%d\n\n", a, b);return(0);}/*交换前a=2 ,b=3交换后a=3 ,b=2*/

2.经典案例

/*需求:1.debug模式下:a.如果定义了宏DEBUG_TO_FILE,那么将日志输出到文件b.如果定义了宏DEBUG_TO_FILE,那么将日志输出到控制台2.release模式下不打印任何日志*//******************************************************************************************///@Author:猿说编程//@Blog(个人博客地址): //@File:C语言教程 - C语言 define 定义函数(多行书写)//@Time:/06/27 08:00//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <string.h>//开启下面的宏表示程序运行在调试版本, 否则为发行版本, 这里假设只有调试版本才输出调试信息#define _DEBUG#ifdef _DEBUG//开启下面的宏就把调试信息输出到文件,注释即输出到终端#define DEBUG_TO_FILE#ifdef DEBUG_TO_FILE//调试信息输出到以下文件#define DEBUG_FILE "/tmp/debugmsg"//调试信息的缓冲长度#define DEBUG_BUFFER_MAX 4096//将调试信息输出到文件中#define printDebugMsg(moduleName, format, ...) {\char buffer[DEBUG_BUFFER_MAX+1]={0};\snprintf( buffer, DEBUG_BUFFER_MAX \, "[%s] "format" File:%s, Line:%d\n", moduleName, ##__VA_ARGS__, __FILE__, __LINE__ );\FILE* fd = fopen(DEBUG_FILE, "a");\if ( fd != NULL ) {\fwrite( buffer, strlen(buffer), 1, fd );\fflush( fd );\fclose( fd );\}\}#else//将调试信息输出到终端#define printDebugMsg(moduleName, format, ...) \printf( "[%s] "format" File:%s, Line:%d\n", moduleName, ##__VA_ARGS__, __FILE__, __LINE__ );#endif //end for #ifdef DEBUG_TO_FILE#else//发行版本,什么也不做#define printDebugMsg(moduleName, format, ...)#endif //end for #ifdef _DEBUGint main(int argc, char** argv){printDebugMsg( "", "name = %s", "C语言教程" );return 0;}

三.猜你喜欢

C 语言 数组下标越界和内存溢出区别C 语言 指针声明和定义C 语言 指针 p++ / p–C 语言p++/§++/_(p++)/_p++C 语言 使用指针遍历数组C 语言 指针和数组区别C 语言 指针数组和数组指针区别C 语言 空指针 NULLC 语言 void 指针C 语言 野指针C 语言 函数值传递和址传递C 语言 函数缺省参数C 语言 函数不定长参数C 语言 函数指针C 语言 指针函数C 语言 回调函数 callbackC 语言 typedefC 语言 define 定义常量C 语言 define 防止头文件重复包含C 语言 define 定义函数C 语言 define 定义函数(多行书写)

未经允许:猿说编程 » C 语言 define 定义函数(多行书写)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。