據說兩個不同標識符的前31個字符必須不同,不管它們的總長度如何。爲什麼C中標識符(31個字符)的長度有限制?對C中標識符長度的限制
回答
此限制是爲了使內部簿記更簡單,以便編譯器可以安全地爲變量名分配不超過32個字符(31 +空終止符)(例如在不同紙張形式中存在對姓氏長度的限制) 。確切的限制是任意的,對於內存來說足夠小,對程序員來說足夠大。
另外,因爲在某些系統上,鏈接是與C編譯器系統分開的一個步驟,並且未用C編寫的目標文件可能會鏈接。這些可以限制標識符的長度。
更新:有可能讓一個程序由多個用不同語言編寫的部分組成(例如,一個函數可能已經在Fortran中編寫並從主C代碼中調用)。其他語言可能會對可變長度施加不同的限制(一個假設的例子:如果標識abcdef
和abcdef1
被認爲是指的是Fortran代碼中的相同函數,則它應該在C代碼中如此)。以姓氏爲例說明:地方當局可能能夠處理大量或當地語言的名稱,但聯邦當局的要求可能更嚴格。
謝謝您理解答案。請您詳細說明鏈接力如何限制標識符的長度。 – manasBVSS
這是編輯帖子的Malcolm McLean的補充。我已經更新了答案。 –
- 1. C標識符限制
- 2. C++ - 限制字符串長度
- 3. 最大標識符長度
- 4. 標識符的限制?
- 5. 限制字符串長度
- 6. TextBox字符長度限制
- 7. 字符長度限制$ _GET?
- 8. 對於XML長度限制
- 9. 限制XSLT中的字符串長度
- 10. 限制FreeMarker中的字符串長度
- 11. 標準繪製線的限制長度
- 12. 使用SQLAlchemy和Elixir的MySQL標識符(表名,列名)的長度限制
- 13. UITextfield限制中文字符長度
- 14. 如何限制輸入標籤中符號的長度?
- 15. Magento - 限制seo的標題長度
- 16. 限制字符串的長度
- 17. 限制屬性的字符串長度
- 18. 密碼的字符/長度限制?
- 19. 限制字符串的最大長度
- 20. 數字對象標識符的最大長度?
- 21. 限制長度值
- 22. PHP:preg_match長度限制
- 23. AJAX長度限制
- 24. NSString長度限制
- 25. mysql長度限制
- 26. 捆綁標識符的限制
- 27. 對於標識列Int32的限制
- 28. 如何將標題的長度限制爲20個字符?
- 29. UITextField - 限制文本長度不受字符數的限制
- 30. 限制XML/HTML字符串長度
該標準僅限於[下界](http://port70.net/~nsz/c/c11/n1570.html#5.2.4.1)以供實施遵循,可能確保當前體系結構中的最低公分母。但是它也[鼓勵](http://port70.net/~nsz/c/c11/n1570.html#note18)的實現遠遠超過它們。 – StoryTeller
你最好閱讀正式的研究文件。 – roottraveller
在C99之前,要求只有6個字符。當使用不超過最低要求的鏈接器工作時,這是爲了娛樂時間 –