我试图编译一个非常简单的程序,该程序将字符串文字的基址存储在指向char的指针中 p
,然后使用指针{{1}打印该字符串},如下所示:
p
由于错误,我以#include<stdio.h>
int main()
{
char *p = "hello";
printf("%s", p);
return 0;
}
扩展名而不是.C
扩展名保存了文件,并且看到当我使用.c
扩展名进行编译时,还有一个警告:
.C
当我以deprecated conversion from string constant to ‘char*’
扩展名编译程序时不存在,我正在使用 Code :: Blocks 16.01 。这里到底发生了什么?
答案 0 :(得分:3)
显然,您的编译器按惯例将.C文件视为C ++源,在这种情况下,实际上不建议使用此转换。如果将其重命名为.cpp,则编译器输出可能应该保持不变。