c11

    1熱度

    2回答

    目前我有一個宏來檢查一個值是一種類型。 #define CHECK_TYPE_INLINE(val, type) \ ((void)(((type)0) != (0 ? (val) : ((type)0)))) 這對於能夠在某些情況下鍵入檢查宏參數非常有用。 但是如果我要檢查多種類型呢?例如,檢查它是否是struct Foo *或struct Bar *。 例, static inl

    0熱度

    1回答

    我正在嘗試編寫C中的應用程序,該應用程序使用C11規範中定義的thread.h使用線程。 我檢查here和here和兩個資源說,錯誤狀態是不明或.....。 請給我一個有這個信息的來源。

    3熱度

    2回答

    多態結構在C中很常見,但通常涉及顯式的強制轉換,它允許意外拋出不兼容的結構。 struct ID { char name[32]; }; struct IntID { struct ID id_base; int value; } struct FloatID { struct ID id_base; float value; }

    6熱度

    3回答

    根據ISO/IEC 9899:1999 6.7.5§2, 每個聲明符聲明一個標識符,並且斷言,當同一 形式的操作數爲顯示的說明符在表達式中,它指定具有 作用域,存儲持續時間和由聲明說明符指示的類型的函數或對象。 我不知道爲什麼表達式突然出現在聲明符語義中。你能給我一些能幫助我理解意義的例子嗎?

    6熱度

    3回答

    我在寫一些類似於atoi()或strtoll()的字符串轉換函數。我想包括我的函數的一個版本,它可以接受char16_t *或char32_t *,而不僅僅是char *或wchar_t *。 我的函數可以正常工作,但是當我寫它時,我意識到我不明白char16_t或char32_t是什麼。我知道標準只要求它們是一個至少16或32位的整數類型,但其含義是它們是UTF-16或UTF-32。我也知道該標

    1熱度

    1回答

    因爲在C中沒有靜態初始化,我想懶洋洋地初始化一個全局的mtx_t(請保持你的反應速度)。對我來說使用布爾標誌並不是什麼問題,但我寧願只檢查mtx_t變量。 C11的mtx_t有一個幸運的'無效狀態'我可以檢查變量嗎?我在草案標準中找不到任何東西。

    -5熱度

    1回答

    安全打印功能,我是一個的NetBeans用戶,我試圖改變的printf與安全printf_s功能,但沒有奏效。編輯無法弄清楚?對於scanf_s也是如此。 我知道這是C11的一部分,一切都是最新的。怎麼了 ?

    4熱度

    2回答

    我想知道如果下面的C代碼段,其中的f定義不能重複f是static聯動的,是正確的聲明和定義之間的聯動: static int f(int); int f(int x) { return x; } 鏘不排放任何警告它。我讀了C11標準的條款6.7.1,但沒有找到我的問題的答案。 可以想象出更多的問題,例如下面的t1.c和t2.c,如果答案一般足以適用於其中一些,這將是很好的,但我只是真的關注

    7熱度

    1回答

    我想在源文件中檢測使用的編譯器是否支持static_assert。

    3熱度

    2回答

    在C11,C++ 11和C++ 14中執行以下操作是否合法? static_assert(((-4) >> 1) == -2, "my code assumes sign-extending right shift"); 或等價的C: _Static_assert(((-4) >> 1) == -2, "my code assumes sign-extending right shift");