几天前我在答案中发现了复合文字如何使用 setsockopt(SO_REUSEADDR)?
所以我尝试编译简单的代码:
#include <stdio.h>
int main()
{
int * ptr = &(int) {3};
printf("%d\n", *ptr);
return 0;
}
使用 gcc 4.9.1,它按预期构建和工作,它打印“3”并且 valgrind 不报告内存损坏。
但是使用 g++ 4.9.1,它不会构建:
$ g++ main.c
main.c: In function ‘int main()’:
main.c:4:23: error: taking address of temporary [-fpermissive]
int * ptr = &(int) {3};
^
有没有一种方法(比如 g++ 选项)来支持复合文字?