考虑一个调用exit()作为最后一条指令的信号处理程序:在该处理程序中调用非重入函数(例如free())是否安全?
恕我直言,这是合法的,因为处理程序没有返回到正常的执行顺序.
先感谢您.
定义new时struct更好的是定义该类型的接口
(即"setter"和"getter"函数)或直接通过.和->运算符访问成员?
编辑
普通C编程
使用逻辑运算符size_t和pid_t类型的正确方法是什么?我的意思是:写下面的东西是合法的吗?
例如:
size_t sz;
/* some kind of assignment */
if(sz > 0){
/* do something */
}
Run Code Online (Sandbox Code Playgroud)
例如:
void f(pid_t pid,...){
if(pid > 0){
/* do something */
}
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
..或者我必须做一些演员?
编辑
好的答案;
现在,考虑到被告知,有人可以给我一个编码的理由:
void *my_malloc(size_t size){
if(size <= 0){
return NULL;
}
/* something else... */
}
Run Code Online (Sandbox Code Playgroud)
我的老师写了那段代码.
是否有意义?
我不知道为size_t类型保留了多少位(它依赖于实现)
但肯定是无符号(你的答案),为什么上面的表达式?