我正在设置一个Web应用程序,该Web应用程序具有一个前端和一个后端,并通过RESTful方法与前端soley通信。如何确保后端端点只能由我自己的前端访问,而不能由其他任何人访问?我在这方面找不到太多信息。
我有一些代码根据参数的类型使用 _Generic 来调度函数。我不明白 gcc 生成的警告。
\n编译用gcc main.c
#include <stdio.h>\n\n#define FOOBAR(x) _Generic((x), \\\n int *: foo(x), \\\n long *: bar(x) \\\n)\n\nvoid foo(int* x) {\n printf("foo\\n");\n}\n\nvoid bar(long* y) {\n printf("bar\\n");\n}\n\nint main() {\n int a = 1111;\n long b = 2222;\n\n FOOBAR(&a);\n FOOBAR(&b);\n}\nRun Code Online (Sandbox Code Playgroud)\n现在,这段代码确实可以编译,并且 _Generic 按预期工作,即“foo”出现,然后“bar”出现。然而,编译器(gcc 和 clang)生成一个奇怪的警告,看起来它会将 _Generic 的参数匹配到错误的行:
\nmain.c: In function \xe2\x80\x98main\xe2\x80\x99:\nmain.c:20:12: warning: passing argument 1 of \xe2\x80\x98bar\xe2\x80\x99 from incompatible pointer type [-Wincompatible-pointer-types]\n 20 | FOOBAR(&a);\n | ^~\n | |\n | int *\nmain.c:5:15: note: in definition …Run Code Online (Sandbox Code Playgroud)