当前位置: 首页 > news >正文

网站建设什么代码最简单wordpress 社交登陆

网站建设什么代码最简单,wordpress 社交登陆,云之创网站建设,南京html5网站建设内联函数 概念 以inline修饰的函数叫做内联函数#xff0c;编译时C编译器会在调用内联函数的地方展开#xff0c;没有函数压栈的开销#xff0c; 内联函数提升程序运行的效率 函数前增加inline关键字将其改成内联函数#xff0c;在编译期间编译器会用函数体替换函数的调用…内联函数 概念 以inline修饰的函数叫做内联函数编译时C编译器会在调用内联函数的地方展开没有函数压栈的开销 内联函数提升程序运行的效率 函数前增加inline关键字将其改成内联函数在编译期间编译器会用函数体替换函数的调用。 反汇编中依旧有call指令语句 为什么 因为代码在Debug模式下把它调回release模式 所以需要在release模式下查看编译器生成的汇编代码中是否存在call Add 因为代码在实际中没有什么作用所以编译器把代码忽略掉了。 并没有出现call语句。 在debug模式下需要对编译器进行设置否则不会展开(因为debug模式下编译器默认不会对代码进行 优化以下给出vs2013的设置方式) 然后再转到反汇编就可以看到了。 特性 4. inline是一种以空间换时间的做法省去调用函数额开销。所以代码很长或者有循环/递归的函数不适宜使 用作为内联函数。 5. inline对于编译器而言只是一个建议编译器会自动优化如果定义为inline的函数体内有循环/递归等 等编译器优化时会忽略掉内联。 6. inline不建议声明和定义分离分离会导致链接错误。因为inline被展开就没有函数地址了链接就会找 不到。 宏的优缺点 宏可以定义 常量函数优点 增强代码的复用性提高性能 缺点 不方便调试宏。因为预编译阶段进行了替换导致代码可读性差可维护性差容易误用。没有类型安全的检查 C有哪些技术替代宏 常量定义 换用const函数定义 换用内联函数 const关键字 auto简介 在c语言中const修饰的是内容不能修改的变量 c中const关键字修饰是把一个变量变量变成一个常量。而且此常量具有宏的属性就是替换。在代码编译期间进行替换。 下列程序中*pa和a的值各是多少 const int a10; int *pa ( int * )a; *pa100; coutaendl; cout*paendl;auto关键字(C11 auto简介 在早期C/C中auto的含义是使用auto修饰的变量是具有自动存储器的局部变量具有自动销毁功能 但遗憾的是一直没有人 去使用它大家可思考下为什么 因为函数体的局部变量本身就在函数返回时自己销毁不需要多此一举。 C11中标准委员会赋予了auto全新的含义即auto不再是一个存储类型指示符而是作为一个新的类型指 示符来指示编译器auto声明的变量必须由编译器在编译时期推导而得。 int TestAuto(){return 10; }int main() {int a 10; auto b a;auto c a;auto d TestAuto();cout typeid(b).name() endl; cout typeid(c).name() endl;cout typeid(d).name() endl;return 0 } ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190513180901378.png?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdXl1Y2hlbjI4MjgyOA,size_16,color_FFFFFF,t_70)定义了一个a的变量并赋了一个10.结构默认为int类型。 而定义一个变量b并赋值3.14结果类型为double。 注意 使用auto定义变量时必须对其进行初始化在编译阶段编译器需要根据初始化表达式来推导auto的实际类 型。因此auto并非是一种“类型”的声明而是一个类型声明时的“占位符”编译器在编译期会将auto替换为变 量实际的类型。 auto的使用细则 auto与指针和引用结合起来使用 用auto声明指针类型时用auto和auto*没有任何区别但用auto声明引用类型时则必须加 在同一行定义多个变量 当在同一行声明多个变量时这些变量必须是相同的类型否则编译器将会报错因为编译器实际只对第一个 类型进行推导然后用推导出来的类型定义其他变量。 void TestAuto(){ auto a 1, b 2; auto c 3, d 4.0; // 该行代码会编译失败因为c和d的初始化表达式类型不同 } auto不能推导的场景 auto不能作为函数的参数 // 此处代码编译失败auto不能作为形参类型因为编译器无法对a的实际类型进行推导 void TestAuto(auto a) {} auto不能直接用来声明数组 void TestAuto() { int a[] {1,2,3}; auto b[] {456}; } 为了避免与C98中的auto发生混淆C11只保留了auto作为类型指示符的用法 auto在实际中常见的优势用法就是跟以后会讲到的C11提供的新式for循环还有lambda表达式等进 行配合使用。 auto不能定义类的非静态成员变量 实例化模板时不能使用auto作为模板参数 基于范围的for循环(C11 在C98中如果要遍历一个数组可以按照以下方式进行 void TestFor() {int array[] { 1, 2, 3, 4, 5 }; for (int i 0; i sizeof(array) / sizeof(array[0]); i) array[i] * 2;for (int* p array; p array sizeof(array)/ sizeof(array[0]); p) cout *p endl;} 对于一个有范围的集合而言由程序员来说明循环的范围是多余的有时候还会容易犯错误。因此C11中引 入了基于范围的for循环。for循环后的括号由冒号“ ”分为两部分第一部分是范围内用于迭代的变量第二 部分则表示被迭代的范围。 int array[] { 1, 2, 3, 4, 5 }; for(auto e : array) e * 2;for(auto e : array) cout e ;而用auto e 则不会改变数组中的内容因为e只是拷贝而要想改变必须用引用。 范围for的使用条件 1. for循环迭代的范围必须是确定的 对于数组而言就是数组中第一个元素和后一个元素的范围对于类而言应该提供begin和end的方法 begin和end就是 for循环迭代的范围。 2. 迭代的对象要实现和的操作。 . 指针空值nullptr(C11 平常我们一般把没有明确指向的指针指空。 NULL可能被定义为字面常量0或者被定义为无类型指针(void)的常量。* nullptr 与 nullptr_t 为了避免混淆C11提供了nullptr 即nullptr代表一个指针空值常量。nullptr是有类型的其类型为nullptr_t仅仅可以被隐式转化为指针类 型nullptr_t被定义在头文件中 **typedef decltype(nullptr) nullptr_t;** 注意 在使用nullptr表示指针空值时不需要包含头文件因为nullptr是C11作为新关键字引入的。在C11中sizeof(nullptr) 与 sizeof((void*)0)所占的字节数相同。为了提高代码的健壮性在后续表示指针空值时建议好使用nullptr。
http://www.sadfv.cn/news/306904/

相关文章:

  • 网站开发一对一黄骅港站
  • 网站制作公司 全贵州有专门做英文字幕的网站吗
  • 网站链接失效怎么做h5开发网站
  • 怎么在国税网站上做实名认证镇江网站制作服务
  • 淘宝客网站需要备案怎样做网络营销推广
  • 自己做的网站如何让qq登录权威发布型舆情回应以事实性
  • 邢台做网站推广服务5网站开发
  • 哈尔滨城市建设局网站wordpress数据库文件在哪里
  • 做网站如何上传apk百度集团股份有限公司
  • 如何设立邮箱和网站溆浦县建筑公司网站
  • 如何在淘宝上接单网站建设建立网站需要注意事项
  • 商务信息网站北京网站优化外包公司
  • 建设在线观看视频网站wordpress如何防止ddos
  • 高县住房和城乡建设部网站团购网站
  • 京东网站优化wordpress的用户名与密码
  • 网站推广流程是陕西省建设教育培训网
  • 工信部网站备案名单成都高端网站建设哪家好
  • 快速模板建站工具做网站在国外发图片
  • 寄生虫做网站流量wordpress包下载失败
  • 碧海蓝天网站梁水才seo优化专家
  • 信阳建网站海南最新消息新闻
  • 美食网站开发可行性分析报告免费推广引流平台下载
  • 广东建设行业招聘 什么网站如何查网站是哪个公司做的
  • 手把手做网站做网站白云
  • 江苏省高校品牌专业建设网站网站备案连接
  • 深圳外贸网站制作微信公众号微商城平台
  • 做国际物流需网站google网页搜索
  • 网站建设安全协议书wordpress电子书
  • 网站被收录要怎么做做网站付多少定金
  • 网站后台管理系统进入北京移动端网站开发