分类: LINUX
2010-01-27 11:14:42
inline和__inline__应该是这样的: ISO C90没有inline;但ISO C++里面有。 GCC感觉C90没有inline不爽,就在自己的C标准加上了inline。 因为GCC通过-ansi可以支持C90,也就是没有inline,所以当有inline,但使用-ansi的话,无法通过编译。 为解决这个问题,又搞了个__inline__,让它的功能等于inline,但可以在-ansi的时候使用。 有趣的是,后来C99加上了inline。这样的话,如果GCC支持C99的话,自然就支持inline。这样__inline__就尴尬了。 但GCC没打算再去支持C99。所以__inline__还得留着(-ansi)。 又因为内核代码不会带着-ansi来编译,所以不需要考虑上面的问题。 这样的话,inline更可读,就建议用inline。