2015-12-24 3 views
1

Я наблюдал в некоторых заголовках использование прагмы. Но на самом деле не уверен в правильном использовании этого. Помощь в этом действительно оцененаПрепроцессор #pragma, связанный с C и C++

#pragma once 
#pragma warning (disable : 4251) 
#pragma warning (pop) 
#pragma warning (push) 
#pragma comment(lib, "dbghelp") 
#pragma warn -ccc 
#pragma warn -aus 
#pragma warn -csu 
#pragma warn -spa 
pragma pack(push,8) 
__cplusplus 

Заранее спасибо.

+0

См. Следующее для общего использования '# pragma' http://stackoverflow.com/questions/232785/use-of-pragma-in-c – Toby

+0

Конкретное использование будет зависеть от вашего компилятора. Для GCC документация доступна по адресу https://gcc.gnu.org/onlinedocs/cpp/Pragmas.html – Toby

+0

Или здесь для MSVC: https://msdn.microsoft.com/en-us/library/d9x1s805.aspx – Toby

ответ

-1

Препроцессор #pragma в основном используется для изменения порядка выполнения программы, которая является нормальной программой c/C++, начинается с main() и выходит из main(), но #pragma позволяет изменять ее.

директивы #pragma делятся следующим образом: -

запуском #pragma имени < функции без скобок>: -

изменяет функцию запуска, что означает, что эта функция будет работать до выполнения основных()

#include... 
void fun1(); 
void fun2(); 
#pragma startup fun1 
#pragma exit fun2 
int main() 
{ 
... 
} 

#pra ГМА выход имя < функции без скобок>: -

изменяет функцию выхода, что означает, что эта функция будет работать после выполнения основного()

#include... 
void fun1(); 
void fun2(); 
#pragma startup fun1 
#pragma exit fun2 
int main() 
{ 
... 
} 

#pragma предупреждает < -типа предупреждение>: -

Данная директива сообщает компилятору, хотим ли мы подавить конкретное предупреждение.

#include... 
    #pragma warn -rvl // return value 
    #pragma warn -par // parameter not used 
    #pragma warn -rch // unreachable code 

void fun(int n) 
    { 
    ... 
    //Do something 
    } 

int main() 
{ 
... 
// Do something 
fun(); // parameter not used warning suppressed. 
} 

Есть много других директив Pragma, и вы можете легко найти их просто делать углубленный и надлежащий поиск по Google.

+0

голосуйте и принимайте ответ, если вы чувствуете удовлетворение. – NeoR

+0

Это вообще не отвечает на вопрос! OP спросил о '#pragma once',' #pragma warning', '#pragma comment',' #pragma warn' и 'pragma pack', но вы описали' #pragma startup', '#pragma exit' и' #pragma warn' – Toby

+0

@Toby он просто спрашивает о прагме и скопировал содержимое заголовочного файла «Я наблюдал в некоторых заголовках использование прагмы. Но на самом деле не уверен в правильном использовании этого» – NeoR

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