void SetMeasurementParameter(unsigned int SampleCount, unsigned int SampleInteval,...) { printf("%d %d\r\n", SampleCount, SampleInteval);}void SetMeasurementParameter2(int co.">
当前位置:   article > 正文

一种C语言同步代码封装方法

一种C语言同步代码封装方法
  1. #include "stdio.h"
  2. #include <stdarg.h>
  3. void SetMeasurementParameter(unsigned int SampleCount,
  4. unsigned int SampleInteval,...)
  5. {
  6. printf("%d %d\r\n", SampleCount, SampleInteval);
  7. }
  8. void SetMeasurementParameter2(int count, va_list ap) {
  9. unsigned int SampleCount;
  10. unsigned int SampleInteval;
  11. //int t = count;
  12. //while (t != -1) {
  13. // printf("%d\r\n", t);
  14. // t = va_arg(ap, int); //将当前参数转换为int类型
  15. //}
  16. SampleCount = va_arg(ap, int);
  17. SampleInteval = va_arg(ap, int);
  18. }
  19. typedef void (*SYNC_FUNC)(int count, va_list va);
  20. void RunSyncFunc(unsigned int SynID, SYNC_FUNC func, int count, ...) {
  21. va_list ap;
  22. int t = count;
  23. va_start(ap, count);
  24. func(count, ap);
  25. /* while (t != -1) {
  26. printf("%d\r\n", t);
  27. t = va_arg(ap, int); //将当前参数转换为int类型
  28. }
  29. */
  30. va_end(ap);
  31. }
  32. void main(void) {
  33. printf("hello world");
  34. RunSyncFunc(0, SetMeasurementParameter2, 2, 11,12, -1);
  35. }
  36. int Sum(int first, int second, ...) {
  37. int sum = 0, t = first;
  38. va_list vl;
  39. va_start(vl, first);
  40. while (t != -1) {
  41. sum += t;
  42. t = va_arg(vl, int); //将当前参数转换为int类型
  43. }
  44. va_end(vl);
  45. return sum;
  46. }
  47. /*
  48. int main(int argc, char* argv[]) {
  49. printf("The sum is %d\n", Sum(30, 20, 10, -1)); //-1是参数结束标志
  50. return 0;
  51. }*/
  52. void TestFun(char* pszDest, int DestLen, const char* pszFormat, ...) {
  53. va_list args;
  54. va_start(args, pszFormat);
  55. //_vsnprintf(pszDest, DestLen, pszFormat, args);
  56. va_end(args);
  57. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/43398
推荐阅读
相关标签
  

闽ICP备14008679号