C语言宏定义值为函数返回值
在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语言宏定义值为函数返回值相关推荐
- C语言:一个涉及指针函数返回值与printf乱码、内存堆栈的经典案例
C语言:一个涉及指针函数返回值与printf乱码.内存堆栈的经典案例 一个奇怪的C语言问题,涉及到指针.数组.堆栈.以及printf.以下实现: 整数向字符串的转换,返回字符串指针,并在main函数中 ...
- c语言指针,return以及函数返回值
指针作为c语言的精华所在所以会多学习几天来扎实的掌握 void* 这不叫空指针,这叫无确切类型指针.这个指针指向一块内存,却没有告诉程序该用何种方式来解释这片内存.所以这种类型的指针不能直接进行取内容 ...
- C语言灵魂篇|指针作为函数返回值
C语言允许函数的返回值是一个指针(地址),我们将这样的函数称为指针函数.下面的例子定义了一个函数 strlong(),用来返回两个字符串中较长的一个: #include #includechar *s ...
- C语言中未显示声明函数返回值的类型
C语言中如果未显示声明函数返回值的类型或函数的形式参数类型,它就默认返回整型.这种声明在C语言中叫做隐式声明.例如: / //main.c /#include<stdio.h>divide ...
- pythonget返回值_python 函数返回值
Python 函数返回值 一.函数返回值 返回值作用: 一旦函数调用或执行,那么函数外部的程序,就没办法控制函数的执行过程.此时外部程序只能等待函数执行结果 为什么要等待? 因为外部程序要根据函数的执 ...
- java 定时器返回值_javascript 函数返回值(return)、定时器(setTimeout、setInterval)...
一.函数的返回值:return 1.函数名+括号=return后面的值 function fn1(){ return 100; } alert(fn1()); // 100 fn1()=return后 ...
- C语言中连续调用rand函数,返回值不变
C语言中连续调用rand函数,返回值不变 最近用C语言随机函数编程发现了一个奇怪的现象: 简易版代码: #include<stdio.h> #include<stdlib.h> ...
- Shell 获取函数返回值(函数返回值)
返回值整形 #!/bin/shdef_one_install(){if [ -d "/opt/aaa" ];thenreturn 1elsereturn 0fi }main() { ...
- linux 变量函数返回值,linux shell 自定义函数(定义、返回值、变量作用域)介绍...
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ f ...
最新文章
- SAP MM 事务代码MI31之思考之续集
- goland 报错 Main file has non-main package or doesn’t contain main function
- XML、集合、JSP综合练习
- java面向对象三大特性:封装、继承、多态——举例说明
- 配置启动MySQL的Docker容器
- leetcode 455. 分发饼干(Java版)
- java 图片导出_java导出含图片的word
- C语言错误: HEAP CORRUPTION DETECTED
- arcgis server mysql_ArcGIS Server 10.1发布要素服务时遇到的数据库注册问题总结 (二)...
- 体力劳动和脑力劳动有什么区别?
- 计算机组成与系统结构
- 如何从Java官网下载 Java API 文档
- Eucalyptus常用命令示例
- Thinkpad SL400开启蓝牙
- HAUT OJ 1475: cxk下棋
- c++链表——银行账户管理系统
- 高考数学必考知识点数学高考常考考点
- 基线_项目管理之答疑解惑:基准与基线??
- 希望今天遇见你(二)
- C语言--实现汉诺塔【图文讲解,附代码】
热门文章
- C++如何使用MySQL数据库
- 北妈每日一题:如何拿到 金条、蛋糕和大钻石
- jQuery.position()其实不可靠!
- 我被跨系统的换行符折磨疯了~~~
- 2021—2022学年面向中小学生的全国性竞赛活动名单
- STM32H743+CubeMX-QSPI读写外部FLASH(W25Q128JVSQ)
- qq浏览器打开word 技术原理_知道为什么计算机可以上网的同时,可以写word还可以听歌吗?...
- the sdk seems invalid._直播平台中必不可少的美颜SDK
- 计算机网络-VRRP
- SoapUI笔记-使用SoapUI测试WebService服务端