對於整潔的代碼,我有點傻,所以我喜歡讓所有內容都縮進和流暢,如果你知道我的意思。C中的空白#
private void myFunc()
{
while(true)
{
//do this
}
}
等。現在,我知道,在一個文本文件,製表符或四個空格或任何實際存儲在那裏,準備下一次我打開它。
如果我去編譯這個,我會通過沒有整齊的格式和縮進來看到輸出文件大小/編譯性能的好處,還是編譯器忽略了一切不重要的東西?
對於整潔的代碼,我有點傻,所以我喜歡讓所有內容都縮進和流暢,如果你知道我的意思。C中的空白#
private void myFunc()
{
while(true)
{
//do this
}
}
等。現在,我知道,在一個文本文件,製表符或四個空格或任何實際存儲在那裏,準備下一次我打開它。
如果我去編譯這個,我會通過沒有整齊的格式和縮進來看到輸出文件大小/編譯性能的好處,還是編譯器忽略了一切不重要的東西?
其中一個編譯步驟被稱爲tokenization。這一步將刪除代碼中的所有空白和註釋。只要你的代碼解析正確,就運行速度而言,格式化良好或格式不良的代碼之間沒有區別。
+1解釋爲什麼它並不重要。 – BoltClock 2011-04-05 02:19:35
不錯的鏈接,很好的解釋,好奇心滿意:) – dotalchemy 2011-04-05 02:23:07
空格或製表符對編譯器沒有任何影響。
製表符是純粹的邪惡。 – 2011-04-05 04:07:27
如果您只使用最小的空白空間,但編譯的文件保持不變,您的源代碼文件會更小。青睞你的源代碼的可讀性。
在編譯的輸出無差別,只是源
編譯器的文本代碼轉換成CIL,所以所有格式將被刪除,它會使你的DLL/EXE的文件的大小沒有區別,所以你可以將其格式化爲任何你喜歡的。
C#不是Python或[空白](http://compsoc.dur.ac.uk/whitespace)。 – BoltClock 2011-04-05 02:08:00
編譯器不關心空格,除非它在語法上有意義 – BlackICE 2011-04-05 02:09:00
@BoltClock我不相信我曾聲稱它是。 Python會拋出錯誤的縮進錯誤,C#不關心。我的問題涉及這些字符在源文件中,而不管它們的語法要求如何。你可能希望再次閱讀這個問題。 – dotalchemy 2011-04-05 02:09:31