- 异常安全
- 保证匹配
- 防止内存泄露
RAII in C
This is inherent implementation dependent, since the Standard doesn't include such a possibility. For GCC, the cleanup attribute runs a function when a variable goes out of scope:
#include <stdio.h>
void scoped(int * pvariable) {
printf("variable (%d) goes out of scopen", *pvariable);
}
int main(void) {
printf("before scopen");
{
int watched __attribute__((cleanup (scoped)));
watched = 42;
}
printf("after scopen");
}
Prints:
before scope
variable (42) goes out of scope
after scope
近期评论