首页 > 编程知识 正文

c语言定义字符串数组,c语言中define

时间:2023-05-03 18:06:39 阅读:9777 作者:3943

目录

1 .定义配置文件2 .定义函数1 .定义无参数函数2 .定义有参数函数3 .定义函数陷阱1 .定义函数陷阱1.2 .定义函数陷阱1解决方案3 .定义函数陷阱1

一.在define配置文件c语言中,可以在#define中定义标识符以表示常量,也可以在#define中定义函数。 示例:

//定义常数#define MAX_VALUE 100 //定义整数变量MAX_VALUE的值为100 #”define user_name ' huge ' /定义字符串变量user _ name的值为' huge ' # deded a:b //最小值凡是以 # 开头的均为预处理指令,预处理又叫预编译。预编译不是编译,而是编译前的处理。这个操作是在正式编译之前由系统自动完成的。

1 .定义函数1 .无定义参数的函数/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。 @file:c语言教程- C语言define定义函数//@ time 33602021/06/2708336000/@ motto 33331/* * * * * * * * * * * * * * * * 返回0; }/*RESULT是25 */2 .定义的带参数的函数/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。 @file:c语言教程- C语言define定义函数//@ time 33602021/06/2708336000/@ motto 33331/* * * * * * * * * * * * * * * * a:b //最小数量int main () { printf )最大值为%dn )、max ) 5,100 ) ); printf ('最小值为%d(n ),min ) ) 5,100 ); 返回0; }/*最大值为100最小值为5*/3.define定义函数陷阱1.define函数陷阱1/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。 @Blog (个人博客地址) : www.codersrc.com//@ file : c语言教程- C语言定义函数//@time33602021/06/2708360c语言/* *

n",RESULT(2)); printf("RESULT是:%dn",RESULT(2+1)); return 0;}/*RESULT是:4RESULT是:5*/

很蒙蔽??为什么第二个计算结果不是9,而是5??

#define RESULT(x) x*xRESULT(2) 等价 2*2 = 4RESULT(2+1) 等价 2+1*2+1 = 5 2.define 函数陷阱一解决办法 /******************************************************************************************///@Author:猿说编程//@Blog(个人博客地址): www.codersrc.com//@File:C语言教程 - C语言 define定义函数//@Time:2021/06/27 08:00//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string>#define RESULT(x) (x)*(x) //在参数两侧加括号int main(){ printf("RESULT是:%dn",RESULT(2)); printf("RESULT是:%dn",RESULT(2+1)); //等价 (2+1)*(2+1) = 9 return 0;}/*RESULT是:4RESULT是:9*/ 3.define 函数陷阱二 /******************************************************************************************///@Author:猿说编程//@Blog(个人博客地址): www.codersrc.com//@File:C语言教程 - C语言 define定义函数//@Time:2021/06/27 08:00//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string>#define RESULT(x) (x)*(x)int main(){ printf("RESULT是:%dn",RESULT(2)); printf("RESULT是:%dn",9/RESULT(2+1)); return 0;}/*RESULT是:4RESULT是:9*/

很蒙蔽??为什么第二个计算结果不是1,而是9??

#define RESULT(x) x*xRESULT(2) 等价 2*2 = 49/RESULT(2+1) 等价 9/(2+1)*(2+1) = 5 4.define 函数陷阱二解决办法 /******************************************************************************************///@Author:猿说编程//@Blog(个人博客地址): www.codersrc.com//@File:C语言教程 - C语言 define定义函数//@Time:2021/06/27 08:00//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string>#define RESULT(x) ((x)*(x)) //在参数两侧加括号,整个表达式也需要加上括号int main(){ printf("RESULT是:%dn",RESULT(2)); printf("RESULT是:%dn",9/RESULT(2+1)); return 0;}/*RESULT是:4RESULT是:1*/

以上讨论说明,对于宏定义,保险的做法是不仅应在参数两侧加括号,也应在整个字符串外加括号。

四.猜你喜欢 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 定义函数

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。