c99

    8热度

    1回答

    执行 double result = pow(base, exponent); 任意base和exponent 可能会导致在试图计算(溢出或复数)的recomended方式价值太大或太复杂。 例如与base=-2,exponent=.5(-2的平方根) 我应该检查是否result==NAN或result==HUGE_VAL? 该代码是否符合C99和跨平台?

    2热度

    1回答

    enum元素的名称是易受重叠/碰撞与两个其他枚举元素名,变量名等... enum Fruit { apple, orange }; typedef enum Fruit Fruit; enum Color { red, orange // <-- ERROR }; typedef enum Color Color; char appl

    0热度

    1回答

    我知道C++是由不同委员会标准化的不同语言。 我知道,从一开始就像C效率一直是C++的主要设计目标。所以,我认为如果任何功能不会产生任何运行时间开销&如果它是有效的,那么它应该被添加到语言中。 C99标准有一些非常有用的&高效功能,其中之一是复合文字。我正在阅读有关编译器文字here。 以下是显示复合文字使用的程序。 #include <stdio.h> // Structure to rep

    3热度

    1回答

    宏名为__func__的存在是C99的一部分,它的意图很明确,但它是在给定函数内扩展到的标准文本吗?

    1热度

    1回答

    我想通过fork派出一些任务,并收集有关数组中这些任务结果的一些信息。 我的想法是使用mmap在两者之间共享数据结构,并让子进程用活动的结果更新结构数组,但我遇到了一些问题。 #include <time.h> #include <unistd.h> #include <string.h> #include <stdio.h> #include <sys/mman.h> #include

    -4热度

    1回答

    我试图找到最大的元素是一个大小的数组,但是我无法从概念上理解我做错了什么如果任何人都可以指向正确的方向我会非常感谢! #include <stdio.h> void max(int a[], int n) { int *max ; int * ind_max; int i; *max = a[0]; * ind_max=*m

    2热度

    1回答

    首先,让我强调一下,这个问题在本质上是legalistic。我是而不是问实际上,下面的程序是否可以用于实际实现,我问根据对ISO-9899标准的最严格的法律解释是否合法(:=不产生未定义的行为) 1999年和2011年)。 问题是,是否允许将指针转换为整数,对该整数执行一些算术运算,将其返回到相同的值,然后将该整数转换回指针。 那么,下面的程序是否合法(就是说它不会产生未定义的行为)? #incl

    2热度

    1回答

    我正在编写提供sha256实现的库。该库将提供给可能想要提供他们自己的sha256功能的供应商,这些功能已针对他们的平台进行了优化。所以,这个库的API允许客户端将函数指针传递给他们的sha256代码。 int mylib_set_sha256_impl(/* function pointers */); 从此以后,所有的算法将使用提供由图书馆提供的股票代码SHA256在内部而不是函数指针。

    2热度

    1回答

    我想知道编译器/链接器是否会删除已在公共头文件中的全局变量extern'd?例如: // public.h struct func_ptrs { void (*foo)(void); void (*bar)(int); }; extern const struct func_ptrs DEFAULT_FUNCS; 和: // private.c #include

    3热度

    1回答

    相关的,但是从有些不同,Do any compilers transfer effective type through memcpy/memmove 在C89,memcpy和memmove需要表现得好像源和目标正在使用的字符类型访问,复制的所有位源到目的地而不考虑被复制的数据的类型。 C99更改了语义,因此如果将具有有效类型的对象复制到没有声明类型的存储器(通常是从malloc或其他此类函数接收