我正在编写一个C程序,因为C中没有字符串,所以我编写了以下代码来解决这个问题:
typedef char * string
现在我需要一个字符串数组,以下语句给出了一个错误:
string * file1
错误消息显示:
Error 1 error C2275: 'string' : illegal use of this type as an expression \\vmware-host\shared folders\school\misc\johncpp\porj\similarity.c 79
我在MSVC编译器上 我不能创建一个基本上是字符串的字符串数组吗?
感谢
答案 0 :(得分:1)
正如@Oli在评论中建议的那样,你可能根本不想这样做。假设你在正确的位置放了一些分号,但你的代码是合法的C.对于MSVC来说,它必须是特别的,它会给你一个错误。您确定编译单元中没有其他内容被命名为string
吗?
编辑:在this link进行快速检查表明您可能只是在某个地方声明变量 - 它必须位于块的顶部或所有块之外(即全局)变量)。
答案 1 :(得分:0)
您是否在函数顶部声明了file1
? MSVC不实现C99,因此您必须将每个变量声明为顶部。请参阅评论here:
如果您尝试定义a,C编译器也会生成此错误 变量低于函数的开头(在C99中是合法的但不是更早) 如果该变量声明使用了typedef
答案 2 :(得分:0)
这些是文件中的代码吗?
typedef char * string
需要
typedef char * string;
和
string * file1
需要
string * file1;
这会使错误消息消失,但...... 它仍然是一个糟糕的想法,因为没有为字符串分配任何空间。