Tag: 编译

关于C ++中名称修改的问题

我正在尝试学习和理解C ++中的名称修改。 以下是一些问题: (1)来自devx 当全局函数被重载时,为每个重载版本生成的受损名称是唯一的。 名称修改也适用于变量。 因此,局部变量和具有相同用户给定名称的全局变量仍然会获得明显的错位名称。 除了重载函数和同名全局变量和局部变量之外,还有其他使用名称修改的示例吗? (2)来自Wiki 需要出现这样的情况:语言允许使用相同的标识符命名不同的实体,只要它们占用不同的命名空间(其中命名空间通常由模块,类或显式命名空间指令定义)。 我不太明白为什么名称修改仅适用于标识符属于不同名称空间的情况,因为重载函数可以在同一名称空间中,同名全局变量和局部变量也可以在同一空间中。 怎么理解这个? 具有相同名称但在不同范围内的变量是否也使用名称修改? (3)C是否有名称错误? 如果没有,那么当一些全局和局部变量具有相同名称时,它如何处理? C没有重载function,对吧? 感谢致敬!

只有当参数不是常量时,math.h中的sqrt才会导致链接器错误“未定义对sqrt的引用”

我创建了一个小程序,如下所示: #include #include #include int main(int argc, char *argv[]) { int i; double tmp; double xx; for(i = 1; i <= 30; i++) { xx = (double) i + 0.01; tmp = sqrt(xx); printf("the square root of %0.4f is %0.4f\n", xx,tmp); sleep(1); xx = 0; } return 0; } 当我尝试使用以下命令编译它时,我收到编译器错误。 gcc -Wall calc.c -o calc […]

在GNU c ++编译器中运行一个包含多个源文件的程序

我在Windows 7操作系统上使用DEV GNU c ++编译器。 我需要知道如何编译具有多个源文件的程序。 这是例子, #FILE1 void f1() { printf(“this is another file under same program”); } #FILE2 int main() { f1(); return 0; } 实际上我需要这个来测试static,extern类说明符如何与多个文件一起使用。 因此,现在只有我必须学习如何在C中的单个程序中使用多个文件。 谢谢你