没错,因为C没有操作符重载,不能改变,c++,c,operator-overloading,cout,C++,C,Operator Overloading,Cout" /> 没错,因为C没有操作符重载,不能改变,c++,c,operator-overloading,cout,C++,C,Operator Overloading,Cout" />

在C中创建cout函数? 我假设大多数C++编译器都是用汇编编写的。这使得他们的语言完全不同(我可能错了)。也就是说,如果我要为普通的旧C语言创建一个cout风格的函数,我该怎么做呢cout有一些非常令人印象深刻的功能,例如以下代码段: // endl not only prints a new line but also flushes the stream cout << "Hello World!" << endl; 下一个业务顺序, p>没错,因为C没有操作符重载,不能改变

在C中创建cout函数? 我假设大多数C++编译器都是用汇编编写的。这使得他们的语言完全不同(我可能错了)。也就是说,如果我要为普通的旧C语言创建一个cout风格的函数,我该怎么做呢cout有一些非常令人印象深刻的功能,例如以下代码段: // endl not only prints a new line but also flushes the stream cout << "Hello World!" << endl; 下一个业务顺序, p>没错,因为C没有操作符重载,不能改变,c++,c,operator-overloading,cout,C++,C,Operator Overloading,Cout,C的行为实际上是C++编译器和标准库的一种流行的实现语言(实际上是C++本身,一个有时被称为自托管或自举语言的概念),您可以研究一个丰富、复杂的C++标准库(加上扩展)的全部来源(抱歉,这是GCC 3——找不到一个GCC 4的源树,它同样容易在线浏览,当然,您可以轻松地下载这些源并在本地机器上研究它们)。 就我个人而言,我建议你从一本好书开始,比如——一旦你掌握了C++的iostreams中所有晦涩难懂的细节,那么这些资料对你来说就更有意义了(作为奖励,这本书还会带你在导游的带领下游览各个地区—

C的行为实际上是C++编译器和标准库的一种流行的实现语言(实际上是C++本身,一个有时被称为自托管或自举语言的概念),您可以研究一个丰富、复杂的C++标准库(加上扩展)的全部来源(抱歉,这是GCC 3——找不到一个GCC 4的源树,它同样容易在线浏览,当然,您可以轻松地下载这些源并在本地机器上研究它们)。
就我个人而言,我建议你从一本好书开始,比如——一旦你掌握了C++的iostreams中所有晦涩难懂的细节,那么这些资料对你来说就更有意义了(作为奖励,这本书还会带你在导游的带领下游览各个地区——抓住你的帽子!)这可能有助于在这一点之间进行翻译,在“不确定从何处开始”这一点上…简短答案是C++语言被定义为允许这样的语法,而C语言不是。-但是你的问题可以从“我如何编写一个C扩展语言的编译器”?如何在自定义库中复制IoSoW功能,用C风格宏来实现特殊语法?“@明显的编译器:我知道你的意思。这就是我把它标记为假设的原因。这并不重要……我只是好奇。大多数C++编译器是用C或C++编写的,而不是汇编。最常见的C编译器是用C编写的。大多数的C++编译器都是用C语言编写的,你对卢卡斯的评论的回答让我觉得你不确定“假设”和“模糊”的区别。
printf("Hello World!\n");
fflush(1);                  //stdout = 1
operator<< ( operator<< (cout, "Hello World!"), endl);
operator_lshift__stream__endl(
  operator_lshift__stream__string(cout, "Hello World!"), endl);