我假設大多數C++編譯器都是用匯編寫的。這使得他們完全不同的語言(我可能是錯的)。這就是說,如果我要爲普通老C創建一個cout
樣式函數,我該怎麼做呢? cout
有一些非常令人印象深刻的功能,利用這個片段,例如:在C中創建一個cout函數?
// endl not only prints a new line but also flushes the stream
cout << "Hello World!" << endl;
這一點我敢肯定轉化爲在C:
printf("Hello World!\n");
fflush(1); //stdout = 1
業務的下一個訂單,該<<
運營商。在C++中,這很容易(操作符重載),但我想不出在C中做到這一點的單一方法。
不知道從哪裏開始就這一個...簡短的答案是,C++語言被定義爲允許這樣的語法,並且C語言不是。 - 但是你的問題可以從「如何爲C擴展語言編寫編譯器?」一直到「如何使用特殊語法的C風格宏複製自定義庫中的iostream功能?」 – 2009-08-10 04:37:46
@Conspicuous編譯器:我知道你說什麼。這就是我將其標記爲假設的原因。這並不重要,我只是好奇而已。 – Kredns 2009-08-10 04:40:31
大多數C++編譯器都是用C或C++編寫的 - 而不是彙編。 – 2009-08-10 04:54:48