может любой скажите, пожалуйста, как работает код ниже,#define func (t, a, b) {t t temp; t temp = a; t a = b; б = темп;}
#define func(t, a, b){ t temp; temp=a; a=b; b=temp;}
int main()
{
int a=3, b=4;
float c=4.5, d=5.99;
func(int, a, b);
func(float, c, d);
printf("%d %d\n", a,b);
printf("%.2f %.2f\n",c,d);
return 0;
}
это даст выгружена выход, как показано ниже
4 3
5.99 4.50
Мои вопросы
1) "#define func (" является функцией с переменным аргументом ..
2) почему «t temp;» не дает никакой ошибки ??
3) можно ли отправить тип данных в качестве аргумента. ??
Я не знаю, как это работает, я знаю только отправка переменные, структуры, указатели и значения, но я не знаю, как мы можем послать тип данных и, почему отправка требуется тип данных,
[Пожалуйста, напишите лучший заголовок на ваш вопрос] (http://meta.stackexchange.com/questions/10647/writing-a-good-title) –
Директива '# define' предназначена для препроцессора и создает a * macro *, а не функция. И этот код не имеет ничего общего с C#, поэтому я удаляю этот тег. –
Чтобы узнать больше, вы можете запустить свой код через препроцессор и посмотреть на генерируемый код. Затем вы увидите, что произошло и как компилятор увидит код. –