Запись, которую я не могу понять в исходном коде Quake (C) - PullRequest
8 голосов
/ 03 декабря 2010

Я взглянул на GPL-код Quake 1 и наткнулся на различные похожие заголовочные файлы, назначение или использование которых мне, кажется, не понятны. Они выглядят как таблицы некоторых типов и имеют такую ​​структуру

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

Без чего-либо до или после них. Я понимаю, что они что-то определяют, но я никогда не сталкивался с такими обозначениями на C. Вы можете прочитать один из заголовочных файлов, которые я имею в виду здесь .

Мой вопрос: что это за ... вещи? ASM на самом деле дает мне меньше проблем, чем этот материал.

Ответы [ 3 ]

14 голосов
/ 03 декабря 2010

Это, вероятно, многоцелевые включения. Их можно использовать так:

struct {int y; int y;} points[] = {
#include <points.inl>
};
8 голосов
/ 03 декабря 2010

Содержимое заголовка do not должно быть действительным C;препроцессор C вставит их, где бы ни находилась директива #include, например, в середине инициализации структуры в другом исходном файле.До тех пор, пока он действителен в Си, к моменту, когда он действительно попадет в компилятор, это все, что имеет значение.

3 голосов
/ 03 декабря 2010

Они могут использоваться для инициализации массивов.

Вы можете использовать их так:

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