2011-04-05 90 views
3

對於整潔的代碼,我有點傻,所以我喜歡讓所有內容都縮進和流暢,如果你知道我的意思。C中的空白#

private void myFunc() 
{ 
    while(true) 
    { 
     //do this 
    } 
} 

等。現在,我知道,在一個文本文件,製表符或四個空格或任何實際存儲在那裏,準備下一次我打開它。

如果我去編譯這個,我會通過沒有整齊的格式和縮進來看到輸出文件大小/編譯性能的好處,還是編譯器忽略了一切不重要的東西?

+0

C#不是Python或[空白](http://compsoc.dur.ac.uk/whitespace)。 – BoltClock 2011-04-05 02:08:00

+0

編譯器不關心空格,除非它在語法上有意義 – BlackICE 2011-04-05 02:09:00

+0

@BoltClock我不相信我曾聲稱它是。 Python會拋出錯誤的縮進錯誤,C#不關心。我的問題涉及這些字符在源文件中,而不管它們的語法要求如何。你可能希望再次閱讀這個問題。 – dotalchemy 2011-04-05 02:09:31

回答

14

其中一個編譯步驟被稱爲tokenization。這一步將刪除代碼中的所有空白和註釋。只要你的代碼解析正確,就運行速度而言,格式化良好或格式不良的代碼之間沒有區別。

+2

+1解釋爲什麼它並不重要。 – BoltClock 2011-04-05 02:19:35

+0

不錯的鏈接,很好的解釋,好奇心滿意:) – dotalchemy 2011-04-05 02:23:07

1

空格或製表符對編譯器沒有任何影響。

+2

製表符是純粹的邪惡。 – 2011-04-05 04:07:27

3

如果您只使用最小的空白空間,但編譯的文件保持不變,您的源代碼文件會更小。青睞你的源代碼的可讀性。

0

在編譯的輸出無差別,只是源

0

編譯器的文本代碼轉換成CIL,所以所有格式將被刪除,它會使你的DLL/EXE的文件的大小沒有區別,所以你可以將其格式化爲任何你喜歡的。