在C语言编程过程中可能会遇到定义一个宏,但是这个宏的值是从另一个接口运行返回值。
可以使用如下我这种方式,demo代码如下:

#include <stdio.h>
#include <stdlib.h>#define TEST_VALUE       0x00000005
#define TEST_VALUE_OTHER   0x00000006#define TEST_VALUE_MODE()\
({\
unsigned int tmp;\
unsigned int state;\
if (get_state(&state)) \tmp = TEST_VALUE_OTHER;\
else\tmp = TEST_VALUE;\
(tmp);\
})\

int get_state(unsigned int* value)
{*value = 1;return *value;
} int main(int argc, char *argv[]) {printf("hello world!\n");unsigned int test = TEST_VALUE_MODE();printf("test: %x \n", test);return 0;
}

运行结果:

$ gcc main.c -o test
$ ./test
hello world!
test: 6

C语言宏定义值为函数返回值相关推荐

  1. C语言:一个涉及指针函数返回值与printf乱码、内存堆栈的经典案例

    C语言:一个涉及指针函数返回值与printf乱码.内存堆栈的经典案例 一个奇怪的C语言问题,涉及到指针.数组.堆栈.以及printf.以下实现: 整数向字符串的转换,返回字符串指针,并在main函数中 ...

  2. c语言指针,return以及函数返回值

    指针作为c语言的精华所在所以会多学习几天来扎实的掌握 void* 这不叫空指针,这叫无确切类型指针.这个指针指向一块内存,却没有告诉程序该用何种方式来解释这片内存.所以这种类型的指针不能直接进行取内容 ...

  3. C语言灵魂篇|指针作为函数返回值

    C语言允许函数的返回值是一个指针(地址),我们将这样的函数称为指针函数.下面的例子定义了一个函数 strlong(),用来返回两个字符串中较长的一个: #include #includechar *s ...

  4. C语言中未显示声明函数返回值的类型

    C语言中如果未显示声明函数返回值的类型或函数的形式参数类型,它就默认返回整型.这种声明在C语言中叫做隐式声明.例如: / //main.c /#include<stdio.h>divide ...

  5. pythonget返回值_python 函数返回值

    Python 函数返回值 一.函数返回值 返回值作用: 一旦函数调用或执行,那么函数外部的程序,就没办法控制函数的执行过程.此时外部程序只能等待函数执行结果 为什么要等待? 因为外部程序要根据函数的执 ...

  6. java 定时器返回值_javascript 函数返回值(return)、定时器(setTimeout、setInterval)...

    一.函数的返回值:return 1.函数名+括号=return后面的值 function fn1(){ return 100; } alert(fn1()); // 100 fn1()=return后 ...

  7. C语言中连续调用rand函数,返回值不变

    C语言中连续调用rand函数,返回值不变 最近用C语言随机函数编程发现了一个奇怪的现象: 简易版代码: #include<stdio.h> #include<stdlib.h> ...

  8. Shell 获取函数返回值(函数返回值)

    返回值整形 #!/bin/shdef_one_install(){if [ -d "/opt/aaa" ];thenreturn 1elsereturn 0fi }main() { ...

  9. linux 变量函数返回值,linux shell 自定义函数(定义、返回值、变量作用域)介绍...

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ f ...

最新文章

  1. SAP MM 事务代码MI31之思考之续集
  2. goland 报错 Main file has non-main package or doesn’t contain main function
  3. XML、集合、JSP综合练习
  4. java面向对象三大特性:封装、继承、多态——举例说明
  5. 配置启动MySQL的Docker容器
  6. leetcode 455. 分发饼干(Java版)
  7. java 图片导出_java导出含图片的word
  8. C语言错误: HEAP CORRUPTION DETECTED
  9. arcgis server mysql_ArcGIS Server 10.1发布要素服务时遇到的数据库注册问题总结 (二)...
  10. 体力劳动和脑力劳动有什么区别?
  11. 计算机组成与系统结构
  12. 如何从Java官网下载 Java API 文档
  13. Eucalyptus常用命令示例
  14. Thinkpad SL400开启蓝牙
  15. HAUT OJ 1475: cxk下棋
  16. c++链表——银行账户管理系统
  17. 高考数学必考知识点数学高考常考考点
  18. 基线_项目管理之答疑解惑:基准与基线??
  19. 希望今天遇见你(二)
  20. C语言--实现汉诺塔【图文讲解,附代码】

热门文章

  1. C++如何使用MySQL数据库
  2. 北妈每日一题:如何拿到 金条、蛋糕和大钻石
  3. jQuery.position()其实不可靠!
  4. 我被跨系统的换行符折磨疯了~~~
  5. 2021—2022学年面向中小学生的全国性竞赛活动名单
  6. STM32H743+CubeMX-QSPI读写外部FLASH(W25Q128JVSQ)
  7. qq浏览器打开word 技术原理_知道为什么计算机可以上网的同时,可以写word还可以听歌吗?...
  8. the sdk seems invalid._直播平台中必不可少的美颜SDK
  9. 计算机网络-VRRP
  10. SoapUI笔记-使用SoapUI测试WebService服务端