评论是否被翻译成机器代码?C++

Kyl*_*son 2 c++ performance comments compilation compiler-optimization

当用C++编写的程序有注释时,这些注释是否被翻译成机器语言,或者他们从未达到过那么远?如果我编写一个C++程序,在两个命令之间有大量的注释,我的程序需要更长的时间才能编译或运行得更慢吗?

Jer*_*fin 11

注释通常在预处理期间被删除,因此编译器本身根本不会看到它们.

它们可以(并且通常会)稍微减慢编译速度 - 预处理器必须通读整个注释以找到它的结束(因此后续代码将被传递给编译器.除非你包含真正庞大的注释(例如,兆字节)但差异可能不会很明显.

虽然我从未见过(或听说过)C或C++编译器,但是有一些编译器(例如Pascal)使用特殊格式的注释将指令传递给编译器.例如,Turbo Pascal允许(并且它的继任者可能仍允许)用户使用注释中的编译器指令来打开和关闭范围检查.在这种情况下,评论没有(至少在我知道的情况下)生成任何机器代码本身,但它可能并且确实影响为评论之外的代码生成的机器代码.


Law*_*llo 7

不,编译器会忽略它们.评论的唯一目的是人类阅读,而不是机器.