2013-04-27 4 views
-4

Я читаю книгу «C++ Primer» 5th Edition, и я прочитал, что препроцессор - это программа, которая запускается перед компилятором C++ и заменяет #include, #define и #ifdefs и другие соответствующим содержимым, а затем передает контроль над компилятору.Как работает препроцессор C++?

Но я нашел способ в cl.exe (Microsoft Compiler), чтобы просмотреть вывод препроцессора, сохраненный непосредственно в файле. Я сделал это, и когда я открыл выходной файл препроцессора, я был удивлен, потому что не нашел то, что ожидал!

Они были совершенно большими и содержали то, что выглядело как запутанный код!

Просьба Объяснить, что на самом деле делает Pre-Processor of C++.

+12

«Я люблю C++ за возможность #define макросов в верхней части кода» - это первый раз, когда я когда-либо слышал, что кто-то это говорит. –

+0

Не обвиняйте OP, мне нравилось писать std :: повсюду на C++, тогда это раздражало. – Dmitry

+1

Возможно, вы можете создать свой Java-код (с препроцессором, таким как [GPP] (http://en.nothingisreal.com/wiki/GPP) или что-то еще). –

ответ

-2

Вы можете развернуть JNI lib, который связывается с вашим родным кодом C/C++, который имеет все необходимые макросы.

+0

Это так же полезно и полезно, как и у OP, почему downvotes lol: D – Shark

+0

-1. Он ищет хороший способ применить препроцессор к исходным файлам Java, чтобы он мог использовать макросы в Java. Использование JNI не решит эту проблему. –

1

Вполне возможно предварительно обработать Java, как и на C или C++. Просто использовать что-то вроде этого:

gcc -E myjava.java > myjava.preprocesses.java 

Затем вы можете использовать макрораскрытие, #if и т.д., чтобы содержание сердца. Конечно, у этого есть недостаток, что есть еще один инструмент, необходимый для компиляции.

+0

спасибо! это действительно полезно – superspacemarines

Смежные вопросы