怎樣解析出C原始檔中的變數的型別?

時間 2021-06-05 14:45:18

1樓:haoshu zhao

編譯一下就比較好得到了。

Is there a way to print out the type of a variable/pointer in C?

這裡面提到的方法有:

編譯之後用GDB看型別

用不正確的格式列印:printf

("%d"

,variable

);然後編譯:gcc -Wall

看編譯器給出的警告資訊。

用g++的typeof:typeid(typeof(x)).name()

2樓:「已登出」

clang有乙個選項-dump-ast-xml,可以將抽象語法樹以XML的形式輸出。然後你處理一下XML就好了。這個選項預設沒有編譯進來,你自己配置編譯一下就可以了。

這個是最方便的做法,不需要去學clang的庫。

update:

使用示例:

clang -fsyntax-only -Xclang -ast-dump-xml example.c

3樓:

推薦兩篇博文

1.理解C/C++語言的宣告語法

2.理解C/C++語言的宣告語法

文章內容(部分?)來自http://book.douban.com/subject/1143879的附錄

通過例項講解了C/C++中的宣告(specifier+declarator),並提供了分析識別符號型別的通用方法

非常的棒

C 中類B需要訪問類A的私有成員變數,除了將B宣告為A的友元類外還有其它方法嗎?

春秋代序 友元函式可不可以呢。將類B的成員函式宣告為類A的友元函式,這樣的話比整個類宣告為友元類更安全一點。現在初學c 的大學生應該都會想到教材的友元成員函式這種簡單方法吧,不知道樓主是不是這個意思,如果樓主是所有友元方法都不想用,那就打擾了 陳俊皓 紙上談兵的方法是,讓類的乙個公共成員函式返回這個...

C 中的類 class entry public entry next 這裡的entry與next有什麼關係?entry怎麼能修飾next呢?

你建立了乙個類,就建立了乙個型別。public entry next 看不懂,public Integer next 能看懂吧?乙個道理。 南蔥 遞迴型別並不是乙個很基礎的概念,乙個型別之所以能成為它自己的組成部分,乙個很重要的前提就是遞迴型別展開是可以終止的,換句話說就是該型別的例項可以為空值 這...

c 中 不同 namespace 的變數及函式查詢是怎樣設計的?

能找到test是由於test含有乙個型別S1的引數,所以會在S1所在的命名空間中尋找函式test。這種查詢方式叫做Argument dependent lookup或者Koenig lookup。Argument dependent lookupThese function names are lo...