如果我打算使用的東西,只是聲明_GNU_SOURCE
後提供的,做我需要在項目中的所有源文件的頂部聲明_GNU_SOURCE
?在整個項目中應該定義_GNU_SOURCE嗎?
是否安全僅在任何需要它的源文件的頂部聲明呢?
我最初關注的是有關類型聲明......這當然是可能的,一個struct
變化定義_GNU_SOURCE
後的形狀,但是是有可能的,抑或是保證這樣的事情「不會改變形狀」?
例如,如果我使用struct
在一個文件(帶有_GNU_SOURCE
)聲明變量,然後使用該變量在另一個(沒有_GNU_SOURCE
),保證了我不會碰到的問題?
在這種情況下,我在pthread_tryjoin_np()
之後。
如果您的編譯器是'gcc',那麼您可以使用選項:'-std = gnu11'然後編譯器就會像編寫glibc的每個'feature test macros'一樣編寫,包括'__GNU_SOURCE'宏。那麼你不必擔心你的問題中提到的細節。 – user3629249