Notation I can't understand in Quake source code (C)

本秂侑毒 提交于 2019-12-04 20:42:34

问题


I was taking a look at the Quake 1 GPL Code and I came across various similar header files, the purpose or use of which I don't seem to understand. They look like tables of some sorts and are structured like this

{1, 0},
{1, -1},
{1, -2},
{1, -3},
{1, -4},
{1, -5},[...]

Without anything before or after them. I understand they define something but I've never come across this kind of notation in C. You can read one of the header files I'm referring to here.

My question is: what are those...things? The ASM is actually giving me less problems than that stuff.


回答1:


These are probably multi-use includes. They can be used like so:

struct {int y; int y;} points[] = {
#include <points.inl>
};



回答2:


The contents of a header do not have to be valid C; the C preprocessor will insert them wherever the #include directive is found, such as in the middle of a struct initialization in another source file. As long as it's valid C by the time it actually gets to the compiler, that's all that matters.




回答3:


They can be used to initialize arrays.

You could use them like this:

int array[N][2] =
#include <header_file>
;


来源:https://stackoverflow.com/questions/4344640/notation-i-cant-understand-in-quake-source-code-c

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!