簡體   English   中英

為什么C struct tm不如typedef?

[英]Why is C struct tm not as typedef?

我只是出於好奇而想知道為什么在C時間結構中

struct tm

用作此命令,不用於typedef 這樣,我總是需要編寫struct tm來獲得正確的代碼。 許多結構都是“ typedef”的,為什么不這樣呢?

因為當語言為struct標記使用單獨的命名空間時,用不必要的typedef污染通用命名空間是不禮貌的。 如果您真的希望typedef隱藏它是struct的事實,那么您可以輕松地自己提供一個,而不必強加給我們其他人。

許多結構都是“ typedef”的,為什么不這樣呢?

我不知道你為什么這么說; C庫中沒有類型定義的結構。 FILE是typedef,但不一定是結構。

也許您的意思是其他代碼主體很多。 這是因為某些人(如您自己)出於某種原因認為名稱空間污染是個好主意。 C庫作者沒有。

我認為問題是在C中這種結構就是這樣誕生的!

您可以自由創建聲明tm typedef的包含文件,也可以在代碼中聲明它!

typedef struct tm tm;

或更好(我認為)

typedef struct tm tm_t;

因為C ++與C不同。C++不是C的超集,而只是語言規范。

您可以使用寫在代碼頂部的#define行來幫助您更快地編寫。

#define TM struct tm

然后,代替struct tm編寫TM

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM