草庐IT

constness

全部标签

const char* , char const* 和char * const之间有区别吗?

 最近在看C语言代码时碰到了这个问题,结合查找的资料对这C的知识点做了一下小结。写了一份测试它们的代码。test1函数穿了一个char*const的指针,如果对它增加,会报错,它是只读的。但是可以对指针所指位置的内容进行更改。test2函数测试的是constchar类型的参数,test3函数测试的是charconst的参数。注释部分是一些错误写法和提示信息,也就是一些反面教材。#include//TEST1voidtest1(char*constp){//p++;//compileerror://incrementofread-onlyparameter‘p’*(p+3)='D';*(p+4)

const char* , char const* 和char * const之间有区别吗?

 最近在看C语言代码时碰到了这个问题,结合查找的资料对这C的知识点做了一下小结。写了一份测试它们的代码。test1函数穿了一个char*const的指针,如果对它增加,会报错,它是只读的。但是可以对指针所指位置的内容进行更改。test2函数测试的是constchar类型的参数,test3函数测试的是charconst的参数。注释部分是一些错误写法和提示信息,也就是一些反面教材。#include//TEST1voidtest1(char*constp){//p++;//compileerror://incrementofread-onlyparameter‘p’*(p+3)='D';*(p+4)

rt-thread中MSH_CMD_EXPORT()函数的实现原理-const char __fsym_##cmd##_name[] RT_SECTION(“.rodata.name“) = #cmd

constchar_fsym##cmd##_name[]RT_SECTION(".rodata.name")=#cmd学习一下这行代码对这行代码里面的__fsym双#,RT_SECTION这些都不理解#defineRT_SECTION(x)attribute((section(x)))这行代码的__attribute__((section(x)))又是什么意思???学习结论:把__fsym_##cmd##_name[]这个变量放置到名为".rodata.name"的段中attribute((section(x)))使用详解----精品那么问题来了,使用section将变量放到我们自定义的输入段

rt-thread中MSH_CMD_EXPORT()函数的实现原理-const char __fsym_##cmd##_name[] RT_SECTION(“.rodata.name“) = #cmd

constchar_fsym##cmd##_name[]RT_SECTION(".rodata.name")=#cmd学习一下这行代码对这行代码里面的__fsym双#,RT_SECTION这些都不理解#defineRT_SECTION(x)attribute((section(x)))这行代码的__attribute__((section(x)))又是什么意思???学习结论:把__fsym_##cmd##_name[]这个变量放置到名为".rodata.name"的段中attribute((section(x)))使用详解----精品那么问题来了,使用section将变量放到我们自定义的输入段

JavaScript let 和 const

JavaScriptlet和constECMAScript2015(ECMAScript6)ES2015(ES6)新增加了两个重要的JavaScript关键字:let和const。let声明的变量只在let命令所在的代码块内有效。const声明一个只读的常量,一旦声明,常量的值就不能改变。在ES6之前,JavaScript只有两种作用域:全局变量与函数内的局部变量。全局变量在函数外声明的变量作用域是全局的:实例varcarName="Volvo";//这里可以使用carName变量functionmyFunction(){//这里也可以使用carName变量}尝试一下»全局变量在JavaScr

JavaScript let 和 const

JavaScriptlet和constECMAScript2015(ECMAScript6)ES2015(ES6)新增加了两个重要的JavaScript关键字:let和const。let声明的变量只在let命令所在的代码块内有效。const声明一个只读的常量,一旦声明,常量的值就不能改变。在ES6之前,JavaScript只有两种作用域:全局变量与函数内的局部变量。全局变量在函数外声明的变量作用域是全局的:实例varcarName="Volvo";//这里可以使用carName变量functionmyFunction(){//这里也可以使用carName变量}尝试一下»全局变量在JavaScr

js有了var为什么还要有let和const?

为什么javascript中有那么多声明变量的方式,明明是弱类型的语言,确有三个关键字?最早的是var,这是es6之前的声明方式,既然有了var为什么还要有let和const呢?原因很简单,这是因为var有一些问题不够方便。首先是作用域,在一个函数内只要声明一个var,内部可以任意调用,比如创建一个for循环使用var和let的效果。作用域的区别var声明之后函数内所有的都可以调用他(var只有全局作用域和函数作用域没有块级作用域)let只会在块级作用域调用会报错()function作用域(){for(varvar1=0;var1functionprint_one(){if(true){var

js有了var为什么还要有let和const?

为什么javascript中有那么多声明变量的方式,明明是弱类型的语言,确有三个关键字?最早的是var,这是es6之前的声明方式,既然有了var为什么还要有let和const呢?原因很简单,这是因为var有一些问题不够方便。首先是作用域,在一个函数内只要声明一个var,内部可以任意调用,比如创建一个for循环使用var和let的效果。作用域的区别var声明之后函数内所有的都可以调用他(var只有全局作用域和函数作用域没有块级作用域)let只会在块级作用域调用会报错()function作用域(){for(varvar1=0;var1functionprint_one(){if(true){var

变量 var let 与const

var  var声明范围是函数作用域  var声明提升:使用var声明的变量会自动提升到函数作用域的顶部,此外使用var重复声明同一个变量也没有问题,因为“提升”会将所有变量声明都拉到函数作用域的顶部,此时JavaScript引擎会自动将多余的声明在作用域顶部合并为一个声明,所以反复声明同一个变量也没有问题。  例如:console.log(age)//18varage=18 1varage=18;23vartime=2022;45console.log(age);//1867console.log(time);/20228910varage,time;11age=18;12time=2022

变量 var let 与const

var  var声明范围是函数作用域  var声明提升:使用var声明的变量会自动提升到函数作用域的顶部,此外使用var重复声明同一个变量也没有问题,因为“提升”会将所有变量声明都拉到函数作用域的顶部,此时JavaScript引擎会自动将多余的声明在作用域顶部合并为一个声明,所以反复声明同一个变量也没有问题。  例如:console.log(age)//18varage=18 1varage=18;23vartime=2022;45console.log(age);//1867console.log(time);/20228910varage,time;11age=18;12time=2022