เราจะมาดูวิธีการเปลี่ยนผลลัพธ์ของฟังก์ชัน 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