编译c语言数组时出现storage size of is not known
时间: 2024-04-01 18:34:01 浏览: 64
出现 "storage size of is not known" 的错误通常是由于在定义数组时使用了错误的语法或未正确包含所需的头文件。
可能的原因和解决方案如下:
1. 未正确包含所需的头文件
如果您使用了某些特定的函数或数据类型,但未包含相应的头文件,则可能会出现该错误。请确保您在代码中包含了所需的头文件。
2. 数组定义语法错误
请确保您使用了正确的数组定义语法。例如,如果您定义了一个整数数组,则应该使用以下语法:int myArray[10]; 如果您使用了错误的语法,则可能会出现错误。
3. 编译器版本不支持
某些编译器版本可能不支持某些特定的语法或功能。请检查您使用的编译器版本是否支持您在代码中使用的所有语法和功能。
总之,出现 "storage size of is not known" 的错误通常是由于语法错误或未正确包含所需的头文件引起的。请仔细检查您的代码并确保使用正确的语法和头文件。
相关问题
c语言数组和java数组
C语言数组和Java数组都是用来存储一组相同类型的数据的数据结构,但是它们在定义、使用和内存管理等方面有一些不同。
在C语言中,数组的定义方式为:类型 数组名[元素个数],例如 int arr。而在Java中,数组的定义方式为:类型[] 数组名 = new 类型[元素个数],例如 int[] arr = new int。
在C语言中,数组的下标从0开始,而在Java中也是从0开始。但是在C语言中,数组的长度需要手动计算或者通过sizeof()函数获取,而在Java中可以通过数组的length属性获取。
在C语言中,数组的内存分配是静态的,即在编译时就确定了数组的大小和内存地址。而在Java中,数组的内存分配是动态的,即在运行时根据元素个数动态分配内存。
编译时出现implicit declaration of function is invaild
您在编译时出现了函数隐式声明无效的错误。这个警告信息是由于在C99标准中,默认不允许隐式声明函数,需要先声明后调用。在之前的C语言版本中,如果没有在调用函数之前声明函数,编译器会自动为调用函数的C代码生成汇编代码。为了解决这个问题,您可以在main函数之前添加函数声明,告诉编译器函数的存在。例如,在您的代码中,您可以在main函数前添加以下代码来声明sum函数:
int sum(int a, int b);
这样编译器就能够正确地识别函数sum。另外,如果您使用的是gcc编译器,可以使用以下命令来编译:
gcc test.c -std=c99这样就可以使用C99标准,但需要注意的是,在C99标准下,隐式声明函数仍然是无效的。建议在编写代码时,遵循良好的编程习惯,先声明后使用函数,以避免这个问题的发生。