c89

    9热度

    3回答

    我读过,C89不支持可变长度的阵列,但下面的实验似乎否定的是: #include <stdio.h> int main() { int x; printf("Enter a number: "); scanf("%d", &x); int a[x]; a[0] = 1; // ... return 0; } 当我编译

    1热度

    2回答

    我刚刚发现我正在处理的代码的某些部分错误地使用了可写入的静态数据,它可以/应该使用常量数据。 有没有办法阻止所有'静态'数据是可写的,就像是如何显式地创建常量字符串数据一样,对静态搜索 - 替换“静态” - >“静态常量”可写? 我使用GCC工具链,开发目标是x86。

    14热度

    5回答

    在一个项目中我必须做C89标准,我必须检查一个文件是否存在。 我该怎么做? 我想用 FILE *file; if ((file = fopen(fname, "r")) == NULL) { printf("file doesn't exists"); } return 0; 的,但我认为可以有更多的情况下,则文件不存在,将做的fopen == NULL。 我如何做到这一点?

    9热度

    2回答

    #include <stdio.h> #include <stdlib.h> float values[] = { 4, 1, 10, 9, 2, 5, -1, -9, -2,10000,-0.05,-3,-1.1 }; int compare (const void * a, const void * b) { return ((int) (*(float*)a - *(f

    16热度

    3回答

    如何在MS Visual C++中启用使用VLA,C99中定义的可变长度数组或者根本不可能? 是的,我知道C++标准是基于C89,并且在C89标准中没有可用的VLA,因此在C++中不可用,但MSVC++也应该是C编译器,也可以是使用/ TC编译器参数(Compile as C Code (/TC))开启。但是这样做似乎并没有启用VLA,并且编译过程在构建C++时(Compile as C++ Co

    1热度

    2回答

    我想将va_list传递给另一个函数。这里是什么,我试图做一个例子: void my_printf_1(char* string, ...){ va_list ap; va_start (ap, string); printf(string, ap); va_end(ap); } void my_printf_2(char* string, ...){

    3热度

    6回答

    我正在使用函数库函数ConnectToTCPServer。当主机不可访问时,此功能超时。在这种情况下,应用程序崩溃并出现以下错误: “非致命的运行时错误:”MyClient.c“,第93行,第15行,线程ID 0x000017F0:库函数错误(返回值== -11 [0xfffffff5] )。超时错误“ Errorcode 11是一个超时错误,所以这可能经常发生在我的应用程序中 - 但是应用程序崩

    2热度

    2回答

    我想知道是否可以使用ANSI C代码而不是从文件中读取和写入数据。我有很多次在Objective C类中调用的C代码,它每次都必须读取同一个大的二进制文件,对它进行一些处理,然后写出一个大的二进制文件(每个文件略有不同时间代码被称为) 理想情况下,我想以某种方式将来自Objective C的大二进制输入文件传递到ANSI C代码,并且还将ANSI C代码中的大二进制输出文件传回到目标C中。

    3热度

    1回答

    我在gcc中编译我的C90 c代码。同时使像 int symbols[nc]; 其中NC是整数,其值从输入文件中读取的声明我收到警告ISO C90 forbids variable-size array。输入文件的值是不同的,所以我不能保持一个常数值。我怎样才能摆脱它?是否有必要解决这个警告,或者我们可以忽略它? 在此先感谢。

    5热度

    1回答

    我试图编译在Visual Studio 2010中一个简单的ANSI C例子,与此错误编译碰上了: 错误: patchC.c(5):错误C2275:“文件”:非法使用这种类型的作为表达 PROGRAM1: #include <stdio.h> int main(void) { printf("Hello world!\n"); FILE *fp; fp = fop