2017-03-28 36 views
-1

我看標準只說FILE是一個對象類型,但c中的對象類型是什麼?內置類型,結構,聯合和emun?功能類型是一種對象類型嗎? FILE *能否永遠正確地投入void *?May FILE可以作爲c中的函數類型實現嗎?

+0

C中的對象類型是任何非真的函數類型。所以不,它不能是一個函數類型。 – StoryTeller

+0

@SergeBallesta *除了函數指針:C標準並不保證它(POSIX,但是,由於dlsym()工作方式的原因,它們也要求它們可以轉換爲void *) – Medinoc

+0

任何指向類型的指針都可以安全地轉換爲'void *'並返回。 –

回答

3
  • c中的對象類型是什麼?內置類型,結構,聯合和emun?

是的,再加上一些其他「內在」的類型,如mtx_tatomic_flag

  • 是功能型的一種對象類型的?

不,函數類型不同,它們是由指定函數聲明聲明的函數類型。

可以使用f(something)表示法調用函數。對於對象類型,這是無效的。

  • 可以將FILE *強制轉換爲void *始終正確嗎?

是,指針的對象類型(即不是constvolatile)總是可以被轉換爲void*和背面沒有鬆動任何東西。

相關問題