2016-03-11 44 views
0

在C程序中,我們通常會聲明較少數量的變量。是否可以聲明'n'個變量?對於ex: int a,int b,int c ....... 或者編譯器是否給我一個錯誤?在C程序中可以做多少個變量聲明?

變量的聲明是否有最大限制?

+0

你是什麼意思的「少數」?你只是問是否有最大限度的,還是其他的? – Gilles

+0

如果您認爲存在問題,那麼您需要了解陣列。 –

+0

是否有最大限度 –

回答

1

變量數目沒有明確限制。此外,這與特定的編譯器相關,但有跡象表明,必須支持最小數量的範圍,局部變量和標識符長度,才能將其稱爲標準符合性。

限制本身並不與運行時可用的內存連接。

源代碼的任何限制(約束)必須在編譯器文檔中明確給出(這是從C標準指示,段落限制中獲取的語句)。

+0

*聲明*變量(即編譯器接受的內容)的能力以及實際在內存中分配它們的能力都可以是限制。例如,GCC支持幾GB或更多的計算機,實際上符號表的最大尺寸(不知道是否有)可能是一個限制,直到AVR Tiny,它有多達512 **字節* *絕對太多的變量會阻止程序運行。 – tofro

+0

好的,我認爲這是從「規範中的文檔編譯器」中介紹的,或者我錯過了什麼?在運行時分配它們的能力不是編譯器的問題,但是如果編譯器不能分配它們,那是的。 – Evil

4

編譯器沒有義務有上限。但是,如果它有限制,它只能這麼小。

C確定最小值最大限值。

見5.2.4.1 C11翻譯限制

實例:

4095在一個轉換單元外部標識符
511識別符與塊範圍在一個塊中聲明的一個函數定義
127參數
1023成員在一個單一的結構或聯盟