2015-07-20 229 views
-1

在C中是否可以使用typeof運算符。如果是如何實現它。還是有一個我必須使用的頭文件?當我嘗試使用typeof語句時出現以下錯誤:如何在C中實現typeof運算符

  • 未聲明的函數'typeof'(你的意思是feof?);假設extern返回int
+1

有一個[GCC擴展( https://gcc.gnu.org/onlinedocs/gcc/Typeof.html)但是它並沒有像你期望的那樣執行任何運行時魔法,因爲C並沒有真正的類型化運行時多態。你想用它做什麼?如果你正在試圖確定什麼類型的東西在投出之前,你必須自己跟蹤這類信息。 –

+0

我正在同時學習C和Python。由於它在Python中可用,我認爲它也可以在C中使用。 –

+2

Python是一種動態類型的解釋型語言。 C既不是。 Python有類。 C沒有。在Python中,可以使用'typeof'在運行時查找變量的類型。在C中,你知道編譯時變量的類型,因爲你必須在源代碼中顯式聲明它們。例如。 '在Python中使用'void foo(int x)',使用'def foo(x):''。 –

回答

2

C是一種低得多的Python語言,語言很少。對於低級任務 - Python的參考實現用C語言編寫...

即使最近的C版本比1970年代(*)的優秀老版本K &容忍程度低,規則主要是:如果程序員知道這一點,那麼編譯器關心它是沒有用的。例子:

  • 陣列:程序員應大小無所謂,編譯器只關心起始地址
  • 變量類型:程序員應該知道,編譯器只關心它在編譯時間,但不存儲對於運行時間信息

(*)確實有由編譯器執行的規則,但主要是在編譯時:在運行該程序時,剝離下來到最小