#define的一个小技巧
时间:2022-07-24
本文章向大家介绍#define的一个小技巧,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
/* atof example: sine calculator */
#include <stdio.h> /* printf, fgets */
#include <stdlib.h> /* atof */
#include <math.h> /* sin */
#define vfd_com_timeout_clear() do{vfd_com_cnt = 0;}while(0)
#define vfd_com_timeout_recount() do{vfd_com_cnt = 0;}while(0)
/*
判断等待时间是否超时
*/
int is_eload_com_timeout(void)
{
//电子负载超过2s时间尚未反馈
if (1)
{
return 1;
}
else
{
return 0;
}
}
int main ()
{
double n, m;
double pi = 3.1415926535;
char buffer[256] = {"000000.01212n234"};
int vfd_com_cnt = 5;
printf("vfd_com_cnt = %dn",vfd_com_cnt);
vfd_com_timeout_clear();
printf("vfd_com_cnt = %dn",vfd_com_cnt);
if (!is_eload_com_timeout())
{
printf("oooon");
}
else
{
printf("kkkkkn");
}
n = atof (buffer);
printf("n=%fn", n);
m = sin (n * pi / 180);
printf ("The sine of %f degrees is %fn", n, m);
return 0;
}
int is_eload_com_timeout(void)
{
if (1)
{
return 1;
}
else
{
return 0;
}
}
int main ()
{
double n, m;
double pi = 3.1415926535;
char buffer[256] = {"000000.01212n234"};
int vfd_com_cnt = 5;
printf("vfd_com_cnt = %dn",vfd_com_cnt);
do{vfd_com_cnt = 0;}while(0);
printf("vfd_com_cnt = %dn",vfd_com_cnt);
if (!is_eload_com_timeout())
{
printf("oooon");
}
else
{
printf("kkkkkn");
}
n = atof (buffer);
printf("n=%fn", n);
m = sin (n * pi / 180);
printf ("The sine of %f degrees is %fn", n, m);
return 0;
}
上文已经就将源代码和预编译后的比分文字合作一起了。
#define vfd_com_timeout_clear() do{vfd_com_cnt = 0;}while(0)
这个代码我起初以为会有问题,应为括号里面是空的,
但是使用gcc -E .atofc.c -o atofc.i后,发现直接替换了,因此该方法可以使用。
但是注意,宏定义不检查语法的,因此写宏定义的时候要格外小心。
- BZOJ1058: [ZJOI2007]报表统计
- React数据流和组件间的通信总结
- react+redux+webpack教程4
- 洛谷P2391 白雪皑皑(并查集)
- BZOJ4514: [Sdoi2016]数字配对(费用流)
- 3.2数据结构之指针和链表 1748:约瑟夫问题
- 2017值得一瞥的JavaScript相关技术趋势
- 1.5编程基础之循环控制44:第n小的质数
- noi 1.8 11图像旋转
- 为什么实现了equals()就必须实现hashCode()?
- 到天宫做客(2017寒假培训测试压轴题)
- 前端--理解 Promise 的工作原理
- 到天宫做客(2017寒假培训测试压轴题)
- 01:查找特定的值
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法