草庐IT

static_demo

全部标签

c++ - static 关键字及其在 C++ 中的各种用途

关键字static在C++中具有多种含义,我觉得这很令人困惑,我永远无法思考它实际上应该如何工作。据我了解,有static存储持续时间,这意味着它在全局的情况下会持续到程序的生命周期,但是当您谈论本地时,这意味着默认初始化为零。C++标准对带有关键字static的类数据成员这么说:3.7.1静态存储时长[basic.stc.static]3Thekeywordstaticcanbeusedtodeclarealocalvariablewithstaticstorageduration.4Thekeywordstaticappliedtoaclassdatamemberinaclassd

c++ - static_cast<> 和 C 风格转换有什么区别?

有什么理由更喜欢static_cast在C风格的类型转换?它们是等价的吗?有什么速度差异吗? 最佳答案 C++风格转换由编译器检查。C风格的强制转换不会也可能在运行时失败。此外,可以轻松搜索c++样式转换,而搜索c样式转换非常困难。另一个很大的好处是4种不同的C++风格转换更清楚地表达了程序员的意图。在编写C++时,我几乎总是使用C++而非C风格。 关于c++-static_cast和C风格转换有什么区别?,我们在StackOverflow上找到一个类似的问题:

java - 是否应该以大写形式声明 "static final Logger"?

在Java中,静态最终变量是常量,并且约定它们应该大写。但是,我看到大多数人以小写形式声明记录器,这在PMD中被视为违规。.例如:privatestaticfinalLoggerlogger=Logger.getLogger(MyClass.class);只需搜索google或SO对于“静态最终记录器”,您将自己看到。我们应该改用LOGGER吗? 最佳答案 记录器引用不是常量,而是最终引用,不应大写。常量VALUE应为大写。privatestaticfinalLoggerlogger=Logger.getLogger(MyClass

java - "non-static method cannot be referenced from a static context"背后的原因是什么?

这个问题在这里已经有了答案:Non-staticvariablecannotbereferencedfromastaticcontext(15个回答)关闭7年前。社区审核了是否重新打开此问题9个月前并关闭:原始关闭原因未解决非常常见的初学者错误是当您尝试“静态”使用类属性而不创建该类的实例时。它会给您留下上述错误消息:Youcaneithermakethenonstaticmethodstaticormakeaninstanceofthatclasstouseitsproperties.这背后的原因是什么?我关心的不是解决方案,而是原因。privatejava.util.Listsom

c++ - 常规转换与 static_cast 与 dynamic_cast

这个问题在这里已经有了答案:Whenshouldstatic_cast,dynamic_cast,const_cast,andreinterpret_castbeused?(11个回答)关闭8年前。社区正在审查是否从6小时前重新开始。我已经编写C和C++代码近20年了,但这些语言的某一方面我从未真正理解过。我显然使用了常规转换,即MyClass*m=(MyClass*)ptr;到处都是,但似乎还有另外两种类型的转换表,我不知道有什么区别。下面几行代码有什么区别?MyClass*m=(MyClass*)ptr;MyClass*m=static_cast(ptr);MyClass*m=dy

Android小Demo——通过MQTT协议连接OneNet平台(旧版)

先看效果图:onenetOneNet:第一步:创建产品1、多协议接入 2、添加产品 3、填写产品信息 4、我已经创建过了,就不重新创了,我的相关填写如下图5、创建成功界面第二步:创建设备1、打开设备列表,点击添加设备2、添加设备的具体信息(注意:这里的鉴权信息相当于密码,是创建设备时你自己随便设的)Android:第一步:配置(这里配置分为两个小点)1、在build.gradle中的dependencies添加依赖(MQTT的实现一般使用这两个库):implementation'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'im

ruby-on-rails - 没有路由匹配 [GET] "/static_pages/home.html.erb"

我正在按照MichaleHartl的教程进行操作,目前正处于此步骤:list5.23。添加根路由的映射。配置/routes.rbSampleApp::Application.routes.drawdorootto:'static_pages#home'match'/help',to:'static_pages#help'match'/about',to:'static_pages#about'match'/contact',to:'static_pages#contact'end我已将他的确切编码复制到我的config/routes.rb并继续收到路由错误:路由错误没有路由匹配[GET

ruby-on-rails - 没有路由匹配 [GET] "demo/hello"

目前正在运行ruby​​onrails指南,我似乎遇到了轻微的障碍。我在其中一个View文件夹中复制了一个View:你好.html.erb和index.html.erb尝试通过浏览器访问它时(localhost:3000/demo/"...")只有原始的demo/index有效,但demo/hello有“NoRouteMatches” 最佳答案 添加get"demo/hello"=>"your-controller#your/action"到你的routes.rb例如:app/controllers/demos_controller

ruby-on-rails - 在 Rails 中运行 bundle exec rspec spec/requests/static_pages_spec.rb 时出错

我正在关注这篇文章,我可以在下面的这个ruby​​文件中编写这段代码,主页确实有示例应用程序,但当我运行bundleexec时,它仍然说静态页面主页应该有内容“示例应用程序”rspec规范/requests/static_pages_spec.rbspec/requests/static_pages_spec文件代码:require'spec_helper'describe"Staticpages"dodescribe"Homepage"doit"shouldhavethecontent'SampleApp'"dovisit'/static_pages/home'page.should

c++ - 为什么现在 "{static const char a[]={...}"和 "{const char a[]={...}"之间存在差异?

看看Ccode的这个小片段或C++code在神bolt上……voidb(charconst*c);voida(void){charconstz[]={0xd,0xe,0xa,0xd,0xb,0xe,0xe,0xf,0xa};b(z);}voidc(void){staticcharconstz[]={0xd,0xe,0xa,0xd,0xb,0xe,0xe,0xf,0xa};b(z);}早期版本的gcc将a()和c()都编译成两条指令,加载z的地址,跳转到b。我尝试将所有现代编译器“悲观”a()以“制作堆栈帧,将z复制到堆栈上,调用b,拆除堆栈帧,但将c()保留为两个指令的简单版本。实际上