/* This program demonstrates some more macros */
#include <stdio.h>
#define WRONG(A) A*A*A /* Wrong macro for cube */
#define CUBE(A) (A)*(A)*(A) /* Right macro for cube */
#define SQUR(A) (A)*(A) /* Right macro for square */
#define ADD_WRONG(A) (A)+(A) /* Wrong macro for addition */
#define ADD_RIGHT(A) ((A)+(A)) /* Right macro for addition */
#define START 1
#define STOP 7
void main()
{
int i,offset;
offset = 5;
for (i = START;i <= STOP;i++) {
printf("The square of %3d is %4d, and its cube is %6d\n",
i+offset,SQUR(i+offset),CUBE(i+offset));
printf("The wrong of %3d is %6d\n",i+offset,WRONG(i+offset));
}
printf("\nNow try the addition macro's\n");
for (i = START;i <= STOP;i++) {
printf("Wrong addition macro = %6d, and right = %6d\n",
5*ADD_WRONG(i),5*ADD_RIGHT(i));
}
} MACRO.C
|