У меня есть несколько вопросов о области действия.
Я думаю, что макрос действует как копирование и вставка, и встроенная функция похожа на это, но не одинакова.
Но я не знаю почемуэтот код действует против моего разума.
Я не знаю, какое ключевое слово для поиска, пожалуйста, сообщите мне только несколько ключевых слов для поиска.
Спасибо за чтение.
'''
inline int add(int a, int b)
{
return a + b;
}
int main()
{
int num1;
num1 = add(10, 20);
printf("%d\n", num1);
return 0;
} // is same as below
'''
int main()
{
int num1;
num1 = int add(int a=10, int b=20)
{
return a + b;
};
printf("%d\n", num1);
return 0;
}
'''
#define xtest() cout<<x<<endl
int x=0;
inline void test(){
cout<<x<<endl;
}
int main(void){
int x=10;
test();
cout<<x<<endl;
xtest();
{
int x = 20;
test();
cout<<x<<endl;
xtest();
}
return 0;
}
Я понимаю, xtest()
и {cout << x << endl}
действуют одинаково, и результат верен, но почему test()
действует иначе?