`
duoerbasilu
  • 浏览: 1474442 次
文章分类
社区版块
存档分类
最新评论

函数名加上了括号

 
阅读更多

今天看公司的一位大佬写的一个函数库模块--corenowa(这是他自己取的名字),发现里面有很多地方非常巧妙!

比如 :

#ifdef __STDC__
#define STR(x) #x
#define CONC(x,y) x##y
#define CONC3(x,y,z) x##y##z
#else
#define STR(x) "x"
#define CONC(x,y) x/**/y
#define CONC3(x,y,z) x/**/y/**/z
#endif



还发现一个地方,给函数名加上了括号:

typedef struct Signal_interface Signal_interface_t; struct Signal_interface
{
void (*handler) (int32_t signum, signal_cb_func func);
};


原来加上括号是为了防止宏扩展。


来自:http://tieba.baidu.com/f?kz=1010232148

分享到:
评论

相关推荐

    PHP函数 -函数的高级用法.ppt

    该变量名后加上圆括号,就可以执行与其值同名的函数,因此可变函数也称为变量函数。 二、引用函数返回值 引用不仅可以用于普通变量、函数参数,还可以用于函数的返回值,此时只需在函数名前添加&符号。此处需注意,...

    python定义函数语法.docx

    Python中定义函数的语法如下: ``` def function_name(parameters): """docstring""" statement(s) ``` 其中,关键字"def"表示定义函数的关键字,后面跟着函数名"function_name",函数名可以自定义,但是需要符合...

    python自定义函数def的应用详解

    函数名的命名规则:和标识符的基本规则是一样的,基本上由小写字母和数字下划线构成 def 是关键字,不能够修改(define的简称) 函数后面一定要加括号(英文状态的)括号里面是否加参数看具体情况 括号后面的...

    C语言编程规范

    在函数体结尾的括号后面可以加上注释,注释中应该包括函数名,这样比较方便进行括号配对检查,也可以清晰地看出来函数是否结束。 范例1:函数的声明 void matMyFunction(int n) { …… } /* matMyFunction*/ 1.2...

    Python中函数的参数定义和可变参数用法实例分析

    本文实例讲述了Python中函数的参数定义和可变参数用法。分享给大家供大家参考。具体如下: 刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **...调用的时候,我们需要使用函数名,加上圆括号扩

    C语言程序设计标准教程

    函数名是由用户定义的标识符,函数名后有一个空括号,其中无参数,但括号不可少。{} 中的内容称为函数体。在函数体中也有类型说明, 这是对函数体内部所用到的变量的类型说明。在很多情况下都不要求无参函数有...

    Javascript自执行匿名函数(function() { })()的原理浅析

    匿名函数指没有指定函数名或指针的函数,自执行匿名函数只是其中一种,下文中称这种函数为:自执行函数  下面是一个最常见的自执行函数: // 传统匿名函数 (function() { alert('hello'); })();  这段...

    扩展微信小程序框架功能:Generator

    Generator函数是ES6提供的一种异步编程解决方案...Generator函数的调用方法与普通函数一样,也是在函数名后面加上一对圆括号。不同的是,调用Generator函数后,该函数并不执行,返回的也不是函数运行结果,而是一个指向

    浅谈python新手中常见的疑惑及解答

    所以不用return,也没有函数名,经常用在需要key参数的函数中,比如sorted。 2 元组(),它是以逗号辨别的,而不是小括号。比如一个元素的元组新手经常写成(12),其实他会被解释成单个元素12.正确的写法应该是(12,),...

    SQL中object_id函数的用法

    在列出表中所有字段名的时候,用到了这样一个SQL函数:object_id 这里我将其作用与用法列出来,好让大家明白: OBJECT_ID: 返回... 如果指定一个临时表名,则必须在临时表名前面加上数据库名,例如: SELECT OBJ

    JavaScript对象学习经验整理

    1.对象的创建方法: (1)通过new运算符创建,new后面跟着一个构造函数名 var object = new Object(); 构造函数直接调用时通常没有返回值,它只是初始化由this值传递进来的对象;但是与new一起使用时返回一个对象值...

    新手学习C++入门资料

    在C++中,允许有相同的函数名,不过它们的参数类型不能完全相同,这样这些函数就可以相互区别开来。而这在C语言中是不允许的。 1.参数个数不同 #include iostream.h void a(int,int); void a(int); int main...

    5.14学习笔记(python基础教程).pdf

    让⽅法变成私有:在名字前⾯加上双下划线 class Secretive: def __inaccessible(self): print("Bet you can't see me") def accessible(self): print("The secret message is:") self.__inaccessible() s = ...

    对layui中的onevent 和event的使用详解

    这是官方文档的说明 ...参数二是定义父级方法名,如果有需要定义该方法的子方法时候同样使用onevent,但参数二的方法名需要与父级相同并已加上括号 如下面的代码中data方法,定义子方法就是data(1), 如果

    一个oracle客户端(oracle sql handler)

    智能的SQL编辑器:自动弹出提示窗口,列出关键字、函数名、列名、对象名、对象类型、参数、包内的过程和函数,提高SQL编辑效率。例如: (1)输入字串“se”,两秒钟后列出以“se”开头的所有关键字及函数; (2...

    jdbc操作文档,数据库基本操作文档集合

    add_months(日期值,给定的月数):在制定日期上加上指定的月数,求出之后的日期 next_day(日期值,星期):指定日期后的星期对应的新日期 last_day(日期值):返回指定日期所在月份的最后一天 日期进行加减的一些规律...

    正则表达式30分钟入门教程

    要理解这个表达式,请按下列顺序分析它:\d{1,3}匹配1到3位的数字,(\d{1,3}\.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后再加上一个一到三位的数字(\d{1,3})。 IP地址中每个数字都不能...

    Oracle开发工具 - Oracle SQL Handler(功能强大,超方便好用, 免装客户端, Windows / Linux)

    智能的SQL编辑器:自动弹出提示窗口,列出关键字、关键字组合、函数名、列名、对象 名、对象类型、参数、包内的过程和函数,提高SQL编辑效率。例如: (1)输入字串“sel”,一秒钟后列出以“sel”开头的所有关键字...

Global site tag (gtag.js) - Google Analytics