帮网站网站做推广被抓会判刑吗,广西桂川建设集团网站,北京网站建设网页设计,软件定制开发平台目录
1.内联函数
内联函数的示例代码 1.内联函数
是一种 C 中的函数定义方式#xff0c;它告诉编译器在每个调用点上插入函数体的副本#xff0c;而不是像普通函数那样在调用时跳转到函数体所在的地址执行。这样可以减少函数调用的开销#xff0c;提高程序的执行效率。
…目录
1.内联函数
内联函数的示例代码 1.内联函数
是一种 C 中的函数定义方式它告诉编译器在每个调用点上插入函数体的副本而不是像普通函数那样在调用时跳转到函数体所在的地址执行。这样可以减少函数调用的开销提高程序的执行效率。
使用内联函数的优点包括 减少函数调用时的开销由于函数调用会涉及保存现场、跳转和恢复现场等操作使用内联函数可以避免这些开销。提高程序执行效率通过将函数体插入到调用点处可以减少函数调用带来的额外开销从而提高程序的执行效率。避免函数调用带来的额外开销在一些简单的函数中函数调用的开销可能比函数本身的执行开销还要大使用内联函数可以避免这种情况。 然而内联函数并非适合所有情况。内联函数适用于函数体较小且频繁调用的情况。在一些复杂的函数或者需要进行递归调用的情况下内联函数可能会引起代码膨胀影响程序的执行效率。要声明内联函数可以在函数定义前加上inline关键字告诉编译器将其作为内联函数处理。需要注意的是inline只是一个建议编译器可以选择是否真正将函数作为内联函数处理。
内联函数是在编译器处理代码时将函数的定义插入到每个调用点处的一种优化手段。通过内联函数可以避免函数调用的开销提高程序的执行效率。
以下是一个使用
内联函数的示例代码
#include iostream
using namespace std;// 声明内联函数
inline int add(int a, int b) {return a b;
}int main() {int x 1, y 2;cout add(x, y) endl; // 内联函数调用return 0;
}在这个例子中我们使用关键字inline来声明内联函数add。在main函数中我们直接调用了内联函数add而不是通过函数调用的方式。编译器会在编译过程中将内联函数的定义插入到调用点处从而避免了函数调用的开销。
需要注意的是内联函数适用于函数体较小且频繁调用的情况。编译器对于是否将函数内联展开的决策是由编译器自行决定的它可能会忽略inline关键字并将其视为普通函数。因此建议将函数定义放在头文件中并尽量避免在循环或递归等复杂情况下使用内联函数。总结起来内联函数是一种优化手段通过在编译过程中将函数的定义插入到调用点处减少函数调用的开销提高程序的执行效率。
2.引用
引用的过程中权限不能放大大。 C中的引用是一种指向其他变量或对象的标识符用于对其进行访问和操作。在使用引用时需要注意不能将权限放大。
具体来说当使用引用时不能将其绑定到一个比其所绑定变量拥有更大访问权限的变量上。例如如果一个引用绑定到了一个私有成员变量上那么不能将其转换为指向公有成员变量的引用。否则这将导致代码中的权限泄漏。
以下是一个权限泄漏的示例代码
#include iostream
using namespace std;class A {
public:int x;
private:int y;
};int main() {A a;a.x 1;// 错误引用不能放大访问权限// int b a.y;return 0;
}在这个例子中我们定义了一个类A其中包含一个公有成员变量x和一个私有成员变量y。在main函数中我们创建了一个A类型的对象a并给x赋值。如果要将y的值赋给一个引用那么就会出现权限泄漏问题。因此如果尝试这样做编译器会报错。总之使用引用时需要遵循“不能将权限放大”的原则避免代码中的权限泄漏问题。 3.例题
1.“引用”与指针的区别是什么( )
A.指针通过某个指针变量指向一个对象后对它所指向的变量间接操作。程序中使用指针程序的可读性差而引用本身就是目标变量的别名对引用的操作就是对目标变量的操作
B.引用通过某个引用变量指向一个对象后对它所指向的变量间接操作。程序中使用引用程序的可读性差而指针本身就是目标变量的别名对指针的操作就是对目标变量的操作
C.指针比引用更节省存储空间
D.以上都不正确
A.指针是间接操作对象引用时对象的别名对别名的操作就是对真实对象的直接操作故正确
B.很显然答案刚好相反
C.指针需要开辟空间引用不需要开辟空间故错误
D.一山不容二虎A正确D如何是好