POSIX.1-2008电子版终于发布
有 HTML 和 PDF 两种版本,详见 OpenGroup书店。
共 58 篇文章。
有 HTML 和 PDF 两种版本,详见 OpenGroup书店。
今天 康神 发现一个浮点数的问题,一个 class 里面有两个浮点(double) 成员 x、y,然后用 return (self.x, self.y).__str__() 返回时,发现输出是 (39.210279999999997, 116.34528) 而不是希望的 (116.345280, 39.210280)。
查了一下,改成 return “(%f, %f)” % (self.x, self.y) 解决。C里面printf的 %f 默认显示小数点后面6位,但是 __str__ 似乎自己对于浮点数精度有些想法?没看 Python 具体的实现。
看来还是学的太少了。之前只是注意到内核有提供这样一个接口,等到kris来信才知道,这个接口和其他平台上都不一样-_-#
#define DE_CONST(konst, var) do { union { const void *k; void *v; } _u; _u.k = konst; var = _u.v; } while (0)
#define __UNCONST(a) ((void *)(unsigned long)(const void *)(a))
颚的神啊……
在POSIX中提到,这个API不仅可以修改输入参数,而且可以返回一个静态存储的指针,说白了,你不能指望某个平台上它是线程安全的,也不能指望它不会修改你发给它的数据……
dengxf同学提到的一个问题,想了一下,想到的一个算法:
令为已知量,为目标量,为迭代轮数,
原理:第(2)步的循环将除最高位的所有0均置位。最后一步(3)修正这一值。
今天在改rtld-elf的时候发现,它定义了一个函数指针数组,其内容是参数不定的,于是定义为:
typedef void (*func_ptr)();
然而,在较高的警告级别下,这一写法会被gcc认为不是prototype。
因为有人问到这个问题,解答一下:
对于:
const char **p
p[i]的值可变,而p[i][j]的值不可变。
对于
char * const *p
p[i]的值不可变,而p[i][j]的值可变。