Pragma directive

โดยปกติเทคนิคนี้จะไม่คอยเจอในตอนที่เรียน แม่กระทั่งในหนังสือที่อ่านแต่อาจจะพบได้ในงานจริงๆ รวมถึงการโปรแกรมเพื่อออกแบบเชิงลึก ถ้าใครที่มาถึงตรงนี้สงสัยและอยากรู้เรื่องนี้มาดูกันครับ

Pragma : เทคนิคที่ทำการเตรียมตัว Compiler ที่จะนำมาใช้งานรวมถึง option เสริมต่างๆให้กับฟังก์ชันที่กำหนด รวมถึงเลือกสถาปัตยกรรมที่จะใช้โดยจะแบ่งกรณีการใช้งานดังนี้

  • ใช้ในการเลือก Compiler เช่น

#pragma GCC
  • ใช้ในการเพิ่ม option เสริม

#pragma GCC push_options
  • ใช้ในการป้องกันการใช้ฟังก์ชันบางอย่าง

#pragma GCC poison printf
  • ใช้ในการเลือกสถาปัตยกรรมที่ใช่ในการ Compile

 #pragma GCC target (“arch=armv6”)

Example C++

#include <bits/stdc++.h>
using namespace std;
	
void func1();
void func2();

#pragma startup func1
#pragma exit func2

void func1()
{
	cout << "Inside func1()\n";
}

void func2()
{
	cout << "Inside func2()\n";
}

int main()
{
	void func1();
	void func2();
	cout << "Inside main()\n";

	return 0;
}

// This code is contributed by shivanisinghss2110

Example C

#include <stdio.h>

void func1();
void func2();

#pragma startup func1
#pragma exit func2

void func1()
{
	printf("Inside func1()\n");
}

void func2()
{
	printf("Inside func2()\n");
}

int main()
{
	void func1();
	void func2();
	printf("Inside main()\n");

	return 0;
}

Output

Inside func1()
Inside main()
Inside func2()

Last updated

Assoc. Prof. Wiroon Sriborrirux, Founder of Advance Innovation Center (AIC) and Bangsaen Design House (BDH), Electrical Engineering Department, Faculty of Engineering, Burapha University