可能重复:
C++中内联函数的好处?
我对内联函数感到困惑.
人们说内联函数通过用原始代码替换函数来节省CPU时间,但是与普通函数相比,它增加了代码的大小.
所以真正的问题是如果我继续在循环中调用内联函数10次,代码大小是否会增加.
假设内联函数大小为2个字节,它会增加20个字节吗?
有谁可以向我解释一下?
我很困惑一元运算符如何在C中用于补充,逻辑否定和预增量.
Ones补充对0的作用是这样的:
int main()
{
int a;
a = ~0; // Ones complement
printf("%d",a); // prints as -1.
}
Run Code Online (Sandbox Code Playgroud)
而逻辑否定对0的作用是这样的:
int main()
{
int a;
a = !0; // Logical negation
printf("%d",a); // prints as 1.
}
Run Code Online (Sandbox Code Playgroud)
但Preincrement对0会产生编译器错误:
int main()
{
int a;
a = ++0; //pre incrementing 0. error: non-lvalue in increment
printf("%d",a);
}
Run Code Online (Sandbox Code Playgroud)
考虑到他们都是一元运算符,为什么不是所有三个都工作?
int main( )
{
int *p;
p=(int *)malloc(20);
printf("%u",p); \\ printing some memory adress
p=(int *)realloc(p,0);
printf("%u",p); \\ printing as 0
printf("%u",*p); \\ printing the value as 0
}
Run Code Online (Sandbox Code Playgroud)
现在我的问题是relloc作为free()函数的语句,因为指针p指向它中的NULL和NULL值.这20个字节会被释放吗?
我现在要了解的一件事.问题是关于constC中的限定符.在我的程序中,我想要更改用const限定符定义的变量的值.
例如:
int main()
{
const int i=40;
i=50 ; // error
}
Run Code Online (Sandbox Code Playgroud)
但有没有办法在上面的例子中改变i的值.请让我知道.谢谢