这种方式就很完美了,无需定义其余变量,直接调用宏定义即可。 2.2.1 语法说明 形如#define xxx(a, b, c) ({x; y; z;})格式的宏定义,最终返回的是z的执行结果,z可以是一个函数,也可以是一个变量,就像上面代码中的MACRO_ADD_1()和MACRO_ADD_2(); ({x; y; z;})中,(、{、}、)一个都不能少。
c语言中使用函数式宏返回不同数据类型的值的平方。 1、 #include <stdio.h>#definesqr(x) ((x) * (x))intmain(void) {inta; puts("please input an integer."); printf("a ="); scanf("%d", &a); printf("sqr of a : %d\n\n\n", sqr(a));doubleb; puts("please input an real num...
但是,如果一个函数被封装在了宏定义中,并且,还要在宏定义之外 获取这个函数的返回值 ,应当如何做呢? 2. 实现方法 有两种实现方法: 在宏定义中使用在宏定义之外预先定义的变量; 利用宏定义的特殊格式——登录后复制({x; y; z;})。 2.1 “全局”变量 我们可以 预先定义一个变量 ,在宏定义函数中直接使用。
但是,如果一个函数被封装在了宏定义中,并且,还要在宏定义之外获取这个函数的返回值,应当如何做呢? 2. 实现方法 有两种实现方法: 在宏定义中使用在宏定义之外预先定义的变量; 利用宏定义的特殊格式——({x; y; z;})。 2.1 “全局”变量 我们可以预先定义一个变量,在宏定义函数中直接使用。 #include <stdio...