【发布时间】:2014-03-28 21:53:16
【问题描述】:
我希望有人可以帮助我。我正在将 C 语言程序转换为 C++,以便轻松使用字符串,但是当我去编译时,我得到了这个错误:
inventory.cpp:225: warning: depreciated conversion from string constant to 'char*'
这是有问题的代码:
#define FNAME "database.dat"
// test data struct
struct t_Record
{
int number;
char word[100];
//String word[];
} Record;
int main (void)
{
int Rec = 0; // record number
FILE *File;
srand(time(NULL));
File = FileOpen(FNAME);
if (!File)
{
printf("Error hommie!\n\n");
exit(-1);
}
...etc.
这是编译器告诉我发生错误的地方:
File = FileOpen(FNAME);
我只是看不出有什么问题......
编译器告诉我要查看的地方甚至没有与之关联的字符串或字符??
现在我知道这个错误之前已经出现过,但我的问题是针对我的代码的。
【问题讨论】:
-
你需要查看
FileOpen函数的函数原型。它期望什么类型的论点? -
如果
FileOpen期望char*不打算修改传递的字符数据,把作者打得头破血流,因为那个参数应该是char const*。 -
以前从不知道编译器会贬低任何东西......
-
@Deduplicator:编译器没有;语言标准做到了。
-
这看起来像是一条 g++ 错误消息——除了实际消息使用“deprecated”这个词,而不是“depreciated”。您似乎重新输入了错误消息,而不是复制并粘贴它。请复制并粘贴 exact 错误消息。像这样的细微差别可能非常重要(尽管这可能不是)。
标签: c++ c string compiler-construction char