1. /* atof example: sine calculator */
  2. #include <stdio.h> /* printf, fgets */
  3. #include <stdlib.h> /* atof */
  4. #include <math.h> /* sin */
  5. #define vfd_com_timeout_clear() do{vfd_com_cnt = 0;}while(0)
  6. #define vfd_com_timeout_recount() do{vfd_com_cnt = 0;}while(0)
  7. /*
  8. 判断等待时间是否超时
  9. */
  10. int is_eload_com_timeout(void)
  11. {
  12. //电子负载超过2s时间尚未反馈
  13. if (1)
  14. {
  15. return 1;
  16. }
  17. else
  18. {
  19. return 0;
  20. }
  21. }
  22. int main ()
  23. {
  24. double n, m;
  25. double pi = 3.1415926535;
  26. char buffer[256] = {"000000.01212\n234"};
  27. int vfd_com_cnt = 5;
  28. printf("vfd_com_cnt = %d\n",vfd_com_cnt);
  29. vfd_com_timeout_clear();
  30. printf("vfd_com_cnt = %d\n",vfd_com_cnt);
  31. if (!is_eload_com_timeout())
  32. {
  33. printf("oooo\n");
  34. }
  35. else
  36. {
  37. printf("kkkkk\n");
  38. }
  39. n = atof (buffer);
  40. printf("n=%f\n", n);
  41. m = sin (n * pi / 180);
  42. printf ("The sine of %f degrees is %f\n", n, m);
  43. return 0;
  44. }
  45. int is_eload_com_timeout(void)
  46. {
  47. if (1)
  48. {
  49. return 1;
  50. }
  51. else
  52. {
  53. return 0;
  54. }
  55. }
  56. int main ()
  57. {
  58. double n, m;
  59. double pi = 3.1415926535;
  60. char buffer[256] = {"000000.01212\n234"};
  61. int vfd_com_cnt = 5;
  62. printf("vfd_com_cnt = %d\n",vfd_com_cnt);
  63. do{vfd_com_cnt = 0;}while(0);
  64. printf("vfd_com_cnt = %d\n",vfd_com_cnt);
  65. if (!is_eload_com_timeout())
  66. {
  67. printf("oooo\n");
  68. }
  69. else
  70. {
  71. printf("kkkkk\n");
  72. }
  73. n = atof (buffer);
  74. printf("n=%f\n", n);
  75. m = sin (n * pi / 180);
  76. printf ("The sine of %f degrees is %f\n", n, m);
  77. return 0;
  78. }

上文已经就将源代码和预编译后的比分文字合作一起了。

#define vfd_com_timeout_clear()     do{vfd_com_cnt = 0;}while(0)

这个代码我起初以为会有问题,应为括号里面是空的,

但是使用gcc -E .\atofc.c -o atofc.i后,发现直接替换了,因此该方法可以使用。

但是注意,宏定义不检查语法的,因此写宏定义的时候要格外小心。

#define的一个小技巧的更多相关文章

  1. POJ-3262 贪心的一个小技巧

    Protecting the Flowers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3204   Accepted: ...

  2. 快速掌握iOS API的一个小技巧

    快速掌握iOS API的一个小技巧 周银辉 iOS SDK和Developer Library中提供了各个类以及函数的帮助文档,这很棒,但要想了解整个库的大体结构(比如UIKit下有哪些类,他们的继承 ...

  3. 【flash】关于flash的制作透明gif的一个小技巧

    关于flash的制作透明gif的一个小技巧 或者说是一个需要注意的地方 1.导出影片|gif,得到的肯定是不透明的.2.想要透明背景,必须通过发布.3.flash中想要发布gif动画的话,不能有文字, ...

  4. 【每日一个小技巧】Python | input的提示信息换行输出,提示信息用变量表示

    [每日一个小技巧]Python | input的提示信息换行输出,提示信息用变量表示 在书写代码的途中,经常会实现这样功能: 请输入下列选项前的序号: 1.选择1 2.选择2 3.选择3 在pytho ...

  5. 针对ACM输出格式的一个小技巧(对格式错误说不!)

    printf("%d%c",bmax," \n"[i==n]); 上文中bmax为题目中需要输出的整形变量,可以脑补很多ans,max之类的,重点在于%c和后面 ...

  6. Scrapy 5+1 ——五大坑附送一个小技巧

    笔者最近对scrapy的学习可谓如火如荼,虽然但是,即使是一整天地学习下来也会有中间两三个小时的"无效学习",不是笔者开小差,而是掉进了深坑出不来. 在此,给各位分享一下作为一名S ...

  7. python笔记_查看函数调用栈的一个小技巧

    一.背景 最近在看一个开源框架的源码,涉及到的内容非常杂乱,有的函数不知道是在什么时候被谁给调用了?调用的时候传入了什么参数?为了解决这个问题,写了一个小的装饰器. 二.实现 这个装饰器函数主要参考了 ...

  8. Eclipse被卡死了或者失去响应了后分析根源的一个小技巧

    提升程序员工作效率的工具/技巧推荐系列 推荐一个功能强大的文件搜索工具SearchMyFiles 介绍一个好用的免费流程图和UML绘制软件-Diagram Designer 介绍Windows任务管理 ...

  9. C++模板类继承的一个小技巧

    先说一下background前段时间想实现一个Sqlite localstorage的功能,对应不同的Model 实体有不同的table, 每一次sql操作的函数签名中会有model实体中的struc ...

随机推荐

  1. LeetCode 1051. 高度检查器(Height Checker) 28

    1051. 高度检查器 1051. Height Checker 题目描述 学校在拍年度纪念照时,一般要求学生按照 非递减 的高度顺序排列. 请你返回至少有多少个学生没有站在正确位置数量.该人数指的是 ...

  2. 【LEETCODE】50、数组分类,简单级别,题目:888,1013,896,485,448,697

    package y2019.Algorithm.array; import java.util.HashSet; import java.util.Set; /** * @ProjectName: c ...

  3. R学习笔记1 介绍R的使用

    R脚本的一次执行叫做一个会话(Session),可以通过函数quit()退出当前的会话 quit(save = "default", status = 0, runLast = T ...

  4. quartz2.3.0(一)您的第一个Quartz程序

    任务类 package org.quartz.examples.example1; import java.util.Date; import org.slf4j.Logger; import org ...

  5. spring boot 用@CONFIGURATIONPROPERTIES 和 @Configuration两种方法读取配置文件

    spring cloud  读取 配置文件属性值 1.bean @Data public class LocalFileConfig { /** * 文件存储地址 */ private String ...

  6. 分享大麦UWP版本开发历程-02.内容“高度/宽度”不同的列表展示

    一个成型的产品,肯定是经过了产品经理出的UE,美工设计的UI,最终到我们手里Coding,这里面最少3个人,最多就不知道会有多少人参与了.每个人脑子想的都是不一样的,我就不粘贴那个“XX眼中的XX”那 ...

  7. 未能加载文件或程序集system.web.extensions解决方法

    发现未能加载文件或程序集的错误,这是由于我的机器上没有安装Ajax的原因.问题解决后,整理如下:表现:1."System.Web.Extensions, Version=1.0.61025.0, Cu ...

  8. 支付宝支付回调方法RSA2验签失败处理方法

    支付宝支付签名方式RSA2生成支付时使用的是支付宝公钥和应用私钥, 而不是应用公钥,支付宝公钥的生成是根据上传应用公钥而变动的, 所以在做回调的时候参数ALIPAY_PUBLIC_KEY也需要传支付宝 ...

  9. web项目服务器安装及配置(虚拟机centOS7)

    一.安装VMware(如需) 1.首先下载VMware虚拟机,地址: https://www.vmware.com/products/workstation-pro/workstation-pro-e ...

  10. JavaScript 数组去重的那几种方法

    数组去重是最常见的面试题,现在总结一下我所知道的几种 首先第一个就是es5 最常见的循环比较 var array= [1, 1, 2]; function test(nums) { for (var ...