Code:
#define aVar sizeof(char)
#define bVar sizeof(short)
#define cVar sizeof(int)
#define dVar sizeof(long)
#define eVar sizeof(float)
#define fVar sizeof(double)
#define gVar sizeof(pointer)
#define hVar sizeof(struct student)

int main(int argc, char *argv[])
{
char response;
	do {
        printf("On this machine the number of bytes in a char is: %d\n", aVar);
        printf("On this machine the number of bytes in a short is: %d\n", bVar);
	printf("On this machine the number of bytes in a int is: %d\n", cVar);
	printf("On this machine the number of bytes in a long is: %d\n", dVar);
	printf("On this machine the number of bytes in a float is: %d\n", eVar);
	printf("On this machine the number of bytes in a double is: %d\n", fVar);
	printf("On this machine the number of bytes in a pointer is: %d\n", gVar);
	printf("On this machine the number of bytes in a struct student is: %d\n", hVar);

printf("Would you like to see the information again?");

scanf("%c", &response);
switch (response) {
        case 'y':
	        scanf("%c", &response);
	        break;

	default:
		printf("Goodbye");
		return 0;
		break;
		}
}while(response = 'y');
}
Here, the sizeof() are displayed. All of them work except sizeof(pointer). I get "undeclared identifier 'pointer'" error for the printf line. How can I fix this?
And while we're here, is my code good or bad? Is there any way to shrink or make it efficient? Thanks