本站动态:
定义全局变量时应尽量加static
作者:shosh 日期:2008-12-12
Brew中的Module的实现方法
作者:shosh 日期:2008-06-06
在Brew中,I是Interface(接口)的意思,如IModule,IShell。IBase提供了AddRef和Release的方法,其他接口均继承自IBase,使每个接口都具有类COM的功能。与C++不同的是,Brew的继承只是方法(函数)的继承,并没有数据的继承。Brew的继承只能够是单向链式的继承,即一个接口不能够同时继承其他多个接口,但可以一级一级继承,如IRootForm->IForm->IHandler->IQueryInterface->IBase(->是继承自的意思,右边的是父亲,左边的是孩子)。这些所谓的继承,实际上也只是使用宏定义实现的结构体成员的累积定义,即会将“父类”的所有方法(函数指针成员)放在结构体的前面,再在后面添加自己的方法(函数指针成员),来实现“子类”具有“父类”全部方法的功能。
Tags: brew IModule Module Interface 继承 类模拟 类 接口 方法 成员 函数 派生 宏
main函数的返回值和参数说明
作者:shosh 日期:2008-06-05
专家级的解释,其中评论中解释了为什么没有明确指明main函数返回值的返回类型是int,而不是void或是其他。
“The C programming Language(《C 程序设计语言》)用的就是 main( )。”
--- 这是因为第一版的C语言只有一种类型,那就是int,没有char,没有long,没有float,…………
既然只有一种类型,那么就可以不写,后来的改进版为了兼容以前的代码于是规定:不明确标明返回值的,默认返回值为int,也就是说 main()等同于int main(),而不是等同于void main()。
在C99中,标准要求编译器至少给 main() 这种用法来个警告。
“The C programming Language(《C 程序设计语言》)用的就是 main( )。”
--- 这是因为第一版的C语言只有一种类型,那就是int,没有char,没有long,没有float,…………
既然只有一种类型,那么就可以不写,后来的改进版为了兼容以前的代码于是规定:不明确标明返回值的,默认返回值为int,也就是说 main()等同于int main(),而不是等同于void main()。
在C99中,标准要求编译器至少给 main() 这种用法来个警告。







