在Visual Studio中要编译带"点号"的结构体,需要把main.cpp改为main.c,才能编译通过。
例子,main.c
#include <stdio.h>
struct tagOPClass {
int a, b, c, d;
ssize_t(*read) (int input);
};
int myread(int input)
{
printf("myread input=%d\n", input + 1);
return input + 1;
}
int main()
{
struct tagOPClass opClass = {
.a = 1,
.c = 3, 4, //3,4 是对.c和.d的赋值
.b = 5,
.read = myread
};
printf("opClass.a=%d ", opClass.a);
printf("opClass.b=%d ", opClass.b);
printf("opClass.c=%d ", opClass.c);
printf("opClass.d=%d \n", opClass.d);
printf("opClass.d=%d \n", opClass.read(97));
printf("%s 向你问好!\n", "demohello");
int i = 0;
/*
pid_t pid = 0;
if ((pid = fork()) > 0)
{
int n = 0;
while (true)
{
n = n - 1;
printf("fork=%d\n", n);
sleep(10);
// return 0;
}
//exit(0); // 结束子进程
}
*/
while (0)
{
i = i + 2;
printf("value=%d\n", i);
}
//fork();
getchar();
return 0;
}