簡體   English   中英

關於c99,邏輯源代碼行的定義是什么?

[英]Regarding to c99, What is the definition of a logical source line?

假設我們編寫以下代碼:

printf ("testtest"
    "titiritest%s",
    " test");

是否符合ISO / IEC:9899§5.1.1.2— 2

是3條不同的邏輯源代碼行,還是單條?

這是

2.立即刪除每個反斜杠字符(\\)並后接換行符的情況,將物理源代碼行拼接成邏輯源代碼行。 只有任何物理源代碼行上的最后一個反斜杠才有資格成為此類接頭的一部分。 不為空的源文件應以換行符結尾,在進行任何此類拼接之前,不得在其后立即加上反斜杠字符。

關於形成邏輯源線提到的唯一規則?

至於

5.2.4.1翻譯限制

[...]

—邏輯源代碼行中的4095個字符

這就意味着,只要我們在換行符前不使用\\ ,每個翻譯單元的大小就不應超過4095個字符。 我很確定,那不是他們要說的。

那么我缺少查找的定義在哪里?

這是三個邏輯源代碼行。

邏輯源代碼行最重要,因為宏定義必須適合一個邏輯源代碼行; 我現在無法想到邏輯源代碼行多於一行的其他用途。 要構造大型字符串文字,您可以使用由多個物理源代碼行組成的邏輯源代碼行(我個人覺得非常丑陋),也可以依靠將引用的字符串連接在一起的事實,這更加可讀和可維護。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM