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

wordpress plugins php speedy青岛seo关键词优化排名

wordpress plugins php speedy,青岛seo关键词优化排名,wp在本地做的网站 上传,web免费代码网站Static static修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。 static 修饰局部变量 改变局部变量的生命周期,本质上是改变了局部变量的存储位置,让局部变量不再是…

Static

static修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。

static 修饰局部变量
改变局部变量的生命周期,本质上是改变了局部变量的存储位置,让局部变量不再是在栈区上开辟空间,而是直接在静态区上开辟空间,从而使得局部变量拥有和全局变量一样的生命周期,即随着整个程序生成和销毁。
在编译环节的编译阶段编译器就会为被 static 修饰的局部变量分配空间,所以C程序在运行的过程中会直接跳过 static 修饰的语句,也就是说,在第二次及以上甚至第一次调用 test 函数时 static int a = 0; 这条语句都不会被执行。

static修饰全局变量
改变了全局变量的外部链接属性(可以在其他源文件内被访问),使其变成内部连接属性(只能在本文件内部被访问),给我们的感觉是全局变量的作用域变小了。

static修饰函数
改变了函数的外部链接属性(可以在其他源文件内被访问),使其变成内部连接属性(只能在本文件内部被访问),给我们的感觉是函数的作用域变小了。

参考:https://blog.csdn.net/m0_62391199/article/details/123517767

Const

const修饰的全局变量为只读,其值不可修改。如果在程序中企图对const修饰的变量进行修改,那么程序就会报错。
const 是 constant 的缩写,是恒定不变的意思,也翻译为常量、常数等。很不幸,正是因为这一点,很多人都认为被 const 修饰的值是常量。这是不精确的,精确的说应该是只读的变量,其值在编译时不能被使用,因为编译器在编译时不知道其存储的内容。
const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点(define 不是关键字)。
const 修饰变量
用 const 修饰的变量被称为常变量,说 const 定义的是变量,但又相当于常量;说它定义的是常量,但又有变量的属性,所以叫常变量。其作用是给该变量赋上只读属性,使该变量不可直接被修改。(但是我们仍然可以通过指针的方式来间接修改变量的值,也就是说,const 修饰变量使变量的值不能被修改这一属性并不是绝对的,它只是编译器层次上的保证。)
1、它可以让编译器在编译代码时对于用 const 修饰的变量直接进行语法检查,使我们提前发现对一些不应该被直接修改的变量被直接修改而引起的错误(最大的作用)。
2、让该变量具有自身描述性(相当于告诉其他的程序员不要直接修改该变量)。

const 修饰数组
给该数组赋上只读属性,使该数组中的每个元素都不可直接被修改(只读数组)。(和 const 修饰变量一样)

const 修饰指针
1、const 放在类型名(int*)前:表示指针指向的变量不能直接被修改,指针的指向可以被修改。

const int *p =&a;
int const *p =&a;

const 放在 int 前面和 int 后面都是放在了类型(int*)的前面,所以二者的效果是完全一样的,但是建议将 const 放在 int 前面。

2、const 放在类型名(int*)后面:表示指针的指向不能直接被修改,指针指向的变量可以直接被修改。

int * const p =&a;

当 const 放在类型名后面时,p指向的内容可以直接被修改掉,但是不能直接修改p的指向。
3、const 同时放在类型名(int*)前面和后面:表示指针指向的变量和指针的指向都不能被直接被修改。

const  int * const p =&a;

const 修饰函数
1、const 修饰函数参数:表示在其函数内部不能对该参数直接进行修改。
2、const 修饰返回值:表示该函数返回值不能直接被修改。

参考:https://blog.csdn.net/m0_62391199/article/details/123686916

Volatile

volatile是一个类型修饰符,作用是作为指令关键字,一般都是和const对应,确保本条指令不会被编译器的优化而忽略。

在某些情况下,为了提高效率,CPU会直接将 flag 放在寄存器中,以后CPU每次检测时直接从寄存器中读取 flag 的值,不再从内存中读取,这种情况也被称为 “内存覆盖”。

当存在直接对内存进行操作的动作,例如其他线程修改了内存中flag 的值,因为CPU是直接从寄存器中读取 flag 的值进行 while 循环的逻辑判断的,所以当另一个逻辑将 flag 改为0时,while 循环并不会停止,而是会继续执行其中的代码块,从而造成程序逻辑上的错误。

那么,为了在某些特殊的情况下出现上述的问题,我们应该怎么办呢?我们可以直接在 flag 变量前面加上 volatile 关键字,让CPU不要对 flag 进行优化,每次都继续从内存当中读取 flag 的值。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{volatile int flag = 1;while (flag) {;}return 0;
}

这就是 volatile 关键字修饰变量的作用:让编译器不对被 volatile 修饰的变量进行优化,从而达到稳定访问内存的目的。
注意:虽然 volatile 叫做易变关键字,但这里仅仅是描述它修饰的变量可能会变化,要编译器注意,并不是要求被它修饰的变量必须
变化!这点要特别注意。
参考:https://blog.csdn.net/m0_62391199/article/details/123746218?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167660003416782428674580%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167660003416782428674580&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-1-123746218-null-null.blog_rank_default&utm_term=Volatile&spm=1018.2226.3001.4450

http://www.hkea.cn/news/694701/

相关文章:

  • 如何做旅游攻略网站长沙seo优化推荐
  • 长春火车站电话咨询电话快排seo
  • 龙城建设网站公司网站内容优化方法
  • 南通网站建设搭建网站卖链接
  • 驻马店市做网站seo臻系统
  • 找公司做网站怎么图片都要自己找百度推广官网电话
  • 网站小样用什么做seo外链平台热狗
  • 建站点的步骤sem是什么
  • 深圳专业做网站的衡水网站优化推广
  • 徐汇科技网站建设2345中国最好的网址站
  • 邢台论坛吧百度seo收录软件
  • 做国外服务器网站吗怎么让百度搜索靠前
  • 做动态图网站有哪些自建站怎么推广
  • web网站开发课程设计报告seo技术培训沈阳
  • 会宁网站建设公司网站优化助手
  • 网站设计制作体会2023年5月最新疫情
  • 月亮湾设计有限公司网站南宁seo产品优化服务
  • 福田欧曼服务站电话上海高端seo公司
  • 高端网站建设哪家好谷歌seo和百度seo
  • 前端写一个页面多少钱海口网站关键词优化
  • 浦东新区建设局官方网站东莞seo关键词
  • 在百度做橱柜网站进入百度一下官网
  • wordpress调用分类标签站长工具查询seo
  • 网站做全局搜索云南新闻最新消息今天
  • 公司网站推广方案长春seo代理
  • 网站地图怎么样做更利于收录手机百度搜索引擎入口
  • 中国建筑公司网站谷歌浏览器官方app下载
  • 厦门网站建设策划seo网站优化培训找哪些
  • 宝安区住房和建设局官方网站seo搜索引擎优化书籍
  • 省建设厅执业资格注册中心网站2023搜索最多的关键词