Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

จะเปลี่ยนผลลัพธ์ของ printf() ใน main() ได้อย่างไร?


เราจะมาดูวิธีการเปลี่ยนผลลัพธ์ของฟังก์ชัน printf() จาก main() ที่นี่เราจะกำหนดฟังก์ชันที่จะเปลี่ยนคำสั่ง printf() ทั้งหมดด้วยประเภทที่กำหนดเป็นประเภทอื่น

เราจะใช้มาโคร #define เพื่อทำงานนี้ มาโครนี้จะถูกกำหนดไว้ภายในฟังก์ชัน เราสามารถใส่ #define บรรทัดได้โดยตรงโดยไม่ต้องใช้มันในฟังก์ชัน แต่ในกรณีนั้น printf() จะเปลี่ยนไปเสมอ หากต้องการควบคุมโดยใช้ main เราต้องเรียกใช้ฟังก์ชันก่อน

ตัวอย่าง

#include <stdio.h>
void changePrintf() { //always any printf will print 50
   #define printf(x, y) printf(x, 50);
}
main() {
   int x = 40;
   changePrintf();
   printf("%d\n", x);
   x = 60;
   printf("%d", x);
}

ผลลัพธ์

50
50