2013年8月6日

函数返回值

摘要: 引述自Documents/zh_CN/CodingStyle 函数可以返回很多种不同类型的值,最常见的一种是表明函数执行成功或者失败的值。这样的一个值可以表示为一个错误代码整数(-Exx = 失败, 0 = 成功)或者一个“成功”布尔值(0 = 失败,非0 = 成功)。混合使用这两种表达式方式是难于发现的bug的来源。为了避免产生这种bug,请遵循下面的惯例: 如果函数的名字是一个动作或者强制性的命令,那么这个函数应该返回错误代码整数。如果是一个判断,那么函数应该返回一个“成功”布尔值。 返回值是实际计算结果而不是计算是否成功的标志的函数不受此惯例的限制。一般的,他们通过返回一些正常值范... 阅读全文

posted @ 2013-08-06 19:03 阿加 阅读(194) 评论(0) 推荐(0) 编辑

BUILD_BUG_ON

摘要: BUILD_BUG_ON()在编译时调用,可以提前发现错误,这里利用了一些不常用的特性,当数组个数元素为负时会发生编译器错误,对于位域宽度而言,其为负数时也会发生编译器错误。1 #define BUILD_BUG_ON_ZERO(e) (sizeof(struct{int : -!!(e);}))2 #define BUILD_BUG_ON_NULL(e) ((void*)sizeof(struct{int : -!!(e);}))3 4 #define BUILD_BUG_ON(condition) ((void)BUILD_BUG_ON_ZERO(condition))5 6 #de... 阅读全文

posted @ 2013-08-06 18:51 阿加 阅读(1426) 评论(0) 推荐(0) 编辑

导航