可变参数宏

转载 2004年08月13日 08:32:00

新的C99规范支持了可变参数的宏,具体使用如下:


以下内容为程序代码:

 #include <stdarg.h>
 #include <stdio.h>

 #define LOGSTRINGS(fm, ...) printf(fm,__VA_ARGS__)

 int main()
 {
      LOGSTRINGS("hello, %d ", 10);
      return 0;
 }
 

 但现在似乎只有gcc才支持。

可变宏参数个数和可变函数参数个数

可变宏参数个数和可变函数参数个数
  • RHEL_admin
  • RHEL_admin
  • 2015年02月13日 19:31
  • 923

C语言可变参数在宏定义中的应用

在C语言的标准库中,printf、scanf、sscanf、sprintf、sscanf这些标准库的输入输出函数,参数都是可变的。在调试程序时,我们可能希望定义一个参数可变的输出函数来记录日志,那么用...
  • xyang81
  • xyang81
  • 2014年11月17日 23:06
  • 4105

C语言可变参数宏定义方法

在GNU C中,宏可以接受可变数目的参数,就象函数一样,例如:  1 2 #define pr_debug(fmt,arg...) \ ...
  • skyflying2012
  • skyflying2012
  • 2014年08月08日 11:21
  • 3798

C/C++可变参数宏, 编译期获取宏的可变参数长度

C/C++可变参数宏, 编译期获取宏的可变参数长度
  • zwc122
  • zwc122
  • 2016年08月23日 15:42
  • 734

gcc宏定义可变参数列表(__VA_ARGS__)

gcc编译器宏定义做了许多扩展,支持宏定义的可变参数
  • CodeIsMyLife
  • CodeIsMyLife
  • 2014年11月13日 18:08
  • 1846

日志打印(C99的可变参数宏实例)

你还在#ifdef DEBUG吗? 如何更方便地打印调试信息,一直是困扰我的一大问题。 但自从C99有了可变参数宏后,这样的困扰便不复存在了。 1. __VA_ARGS__ __VA_ARG...
  • losophy
  • losophy
  • 2013年06月04日 10:50
  • 1870

iOS 可变参数宏__VA_ARGS__

在 GNU C 中,宏可以接受可变数目的参数,就象函数一样,例如: #define pr_debug(fmt,arg...) \ printk(KERN_DEBUG fmt,##arg) ...
  • u010856537
  • u010856537
  • 2015年10月19日 11:00
  • 554

C++学习 可变参数的宏定义小技巧

printf()和fprintf()这些输出函数的参数是可变的,在调试程序时,你可能希望定义自己的参数可变的输出函数, 那么可变参数宏会是一个选择。 C99中规定宏可以像函数一样带有可变参数,比如 ...
  • skdkjxy
  • skdkjxy
  • 2015年07月13日 10:03
  • 2306

linux下可变参数及宏定义封装函数

以下函数包含内容:a 使用宏封装可变参函数 b 可变参数。比较简单,无注释。   两个函数均可以打印出调用者的文件、函数、行号信息。需要参考该代码的,拿走不谢!   #include  #includ...
  • u014260236
  • u014260236
  • 2016年03月18日 13:42
  • 1819

用可变参数宏(variadic macros)传递可变参数表

你可能很熟悉在函数中使用可变参数表,如: void printf(const char* format, …); 直到最近,可变参数表还是只能应用在真正的函数中,不能使用在宏中。 C99编译器标...
  • kelsel
  • kelsel
  • 2016年10月08日 17:07
  • 96
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:可变参数宏
举报原因:
原因补充:

(最多只允许输入30个字)