typedef'd字符串数组?

时间:2012-03-24 22:55:54

标签: c string

我正在编写一个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编译器上 我不能创建一个基本上是字符串的字符串数组吗?

感谢

3 个答案:

答案 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;

这会使错误消息消失,但...... 它仍然是一个糟糕的想法,因为没有为字符串分配任何空间。