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