我对typedef struct、enum、float等内容感到困惑。
我的C头文件代码如下:
typedef enum { FALSE = 0, TRUE } bool_t;
typedef float real;
...
typedef struct _hf_record_identification {
int pagenum;
int recnum;
} RECID;
我在阅读了几篇有关的参考文献后得出结论,可以用C++表示为:
enum bool_t {FALSE = 0, TRUE };
float real;
...
struct _hf_record_identification RECID {
int pagenum;
int recnum;
} ;
我的问题是:C语言中的typedef
和C++语言中的typedef
有什么主要区别?在C++中使用typedef
对我来说并不麻烦。我对C语言中的typedef
感到困惑。对于typedef float real
这种情况,我是否使用得正确?
typedef float real;
不要这样写。代码是关于沟通的,而你在这里没有很好地进行沟通。所有的C和C++程序员都知道float是什么,但是他们不知道你所说的real确切含义。当然,他们可以查阅资料,但你让说明意图变得更加困难了。这个typedef并不是抽象,只是一种语法糖。 - StoryTeller - Unslander Monicatypedef
来避免每次都写struct RECID
。而在 C++ 中,你可以自动使用不带struct
的RECID
。 - πάντα ῥεῖextern C {}
的概念。如果你想编写一个C到C++的包装器,那么请与Bjarne Stroustrup分享你们的经验。他曾经成功地做过类似的事情,但是这需要很多工作,许多人都注意到了这一点。 - Yunnoschtypedef float real;
和float real;
是两个不同的东西。 - CompuChip