Можете ли вы создавать файлы на C с помощью макроса #define?

#c #linux

#c #linux

Вопрос:

Я смотрю на строку в заголовочном файле C, которую я раньше не видел:

 #define var_name1 "/dev/node_file"
 

Эта строка создает файл в /dev/ с именем node_file? Или это просто размещение имени переменной в уже существующем node_file?

Комментарии:

1. Это просто определение макроса, который расширяется до строки. Найдите код, который использует макрос.

2. techonthenet.com/c_language/constants/create_define.php

3. Он не выполняет ничего из того, что вы просите. #define Директива определяет замену. Везде в коде, где вы его используете var_name1 , заменяется на "/dev/node_file" . Замена происходит на этапе предварительной обработки, перед фактической компиляцией кода.

4. Чем это отличается от любого другого #define , который вы видели раньше?

5. Это определяющий var_name1 символ для строки "/dev/node_file" . Каждое вхождение символа var_name1 в единицу перевода будет заменено строкой "/dev/node_file" на этапе предварительной обработки.

Ответ №1:

axiac и Frankie_C подвели итог объяснению для меня: везде в коде, где var_name1 используется, он будет заменен на /dev/node_file .

Комментарии:

1. Нет, var_name1 будет заменен на "/dev/node_file" , а не на dev/node_file .

2. Спасибо, мистер Постпишил

3. Просто чтобы быть уверенным — он будет заменен на "/dev/node_file" . Включая два " .