gcc-extensions

    4熱度

    1回答

    我一直認爲變長數組在C++中是不允許的(請參閱:Why aren't variable-length arrays part of the C++ standard?)。但是爲什麼這段代碼編譯和工作? #include <iostream> using namespace std; int main() { int n; cin >> n; int a[n]

    1熱度

    1回答

    下面的代碼並不G正下方++編譯4.8 #include <vector> using namespace std; int main() { vector<int> v; typeof(v)::iterator it; } 如果我更換的typeof到decltype使用,它工作正常。我知道有一個模板結構 template<class T> struct Self {

    1熱度

    2回答

    我嘗試codefights.com,發現某人的答案,其中涉及給予所有最長字符串矢量做到這一點的一個問題: std::vector<std::string> r, allLongestStrings(std::vector<std::string> a) { int b=0; for (s:a) if (s.size()>b) b=s.size(); for (s:a)

    0熱度

    1回答

    我不確定如何找出要支持的任何給定屬性需要哪種版本的ARM編譯器(armcc)。 例如__atribute__((noinline))? 見 http://www.keil.com/support/man/docs/armcc/armcc_chr1359124975804.htm

    7熱度

    2回答

    在我的C語言實踐中,我面臨着一個表達式,然後我把它簡化爲: int a=({10;}); 這是一個合法的表達,因爲它得到過去的gcc編譯器。 請關注此零件:({10;})。有人能解釋嗎?越詳細越好。謝謝!

    0熱度

    2回答

    我想通過asm內聯一個分支來調用c中的外部函數。我正在編譯爲arm m0指令集,但它返回的是錯誤的表達式。 的代碼是: __asm volatile ( " cmp r3,#0 \n" " b %[my_function] \n" //Call function " bx r14 \n" : //

    0熱度

    1回答

    我想知道它是否可能在代碼塊中使用gcc擴展,如typeof在Windows環境中。 以下代碼僅用於展示我想如何使用typeof。 #include <stdio.h> #include <stdlib.h> #define SWAP(x, y) do { typeof(x) temp##x##y = x; x = y; y = temp##x##y; } while (0) typedef

    1熱度

    1回答

    標準不允許指針void *和指針之間轉換爲功能: 6.3.2.3:8一個指針,指向一個類型的函數可被轉換成一個指針到另一個類型的函數再回來;結果應該等於原始指針 。如果使用轉換的指針 調用類型與指向的 類型不兼容的函數,則行爲未定義。 有在油嘴/ GTK幾個功能打破該規則,作爲一個例子g_signal_handlers_block_by_func 一個典型的例子轉換在GtkEntry爲大寫: vo

    -1熱度

    2回答

    鑑於這種代碼: using vec = uint32_t __attribute__ ((vector_size (16))); 怎樣纔可以改寫MSVC 2015年?

    2熱度

    2回答

    我正在使用一個很好的GCC擴展,它允許我們在結構中聲明VLA。現在我發現了一種通過這種方式將VLA傳遞給函數的方法(通過值)。我也找到了一種方法來回報一個,但在一個非常有限的情況下。 本實施例的功能碼是這樣的: extern void func3() { size_t size; scanf("%zu", &size); struct tx{int _[size