1

Swift协议

协议规定了用来实现某一特定功能所必需的方法和属性。任意能够满足协议要求的类型被称为遵循(conform)这个协议。类、结构体或枚举类型都可以遵循协议,并提供具体实现来完成协议定义的方法和功能。语法协议的语法格式如下:protocol SomeProtocol { // 协议内容 }要使类遵循某个协议,需要在类型名称后加上协议名称,中间以冒号:分隔,作为类型定义的一部分。遵循多个协议时,各协议之间用逗号,分隔。struct SomeStructure: FirstPortocol, AnotherProtocol { // 结构体内容 }如果类在遵循协议的同时拥有父类,应该将父类名...

阅读全文>>

1

GCC 10.1 发布

编译器和库改进对 C++20 的支持 C2X 增强 各方面的优化增强和 bugfix 多个编译器后端的硬件启用变化和增强 新的实验性静态分析 -fanalyzer 会启用新的静态分析以及相关警告。该功能会对代码中的路径进行耗时检查,以检测各种常见错误,例如双重释放(double-free)。目前该功能尚处于实验性阶段,可能无法分析非 C 语言代码。 针对对目标平台的改进 详情...

阅读全文>>

1

C程序中可怕的野指针

一、疑问点 指针是C语言一个很强大的功能,同时也是很容易让人犯错的一个功能,用错了指针,轻者只是报个错,重者可能整个系统都崩溃了。下面是大家在编写C程序时,经常遇到的一种错误的使用方法,也许在你的学习和工作中就是这样用的,很危险。实例程序如图1所示: 图1 实例程序 这段程序比较简单,str1指向的内存区域存放了一个字符串“123”,把“123”赋值到str2指向的内存区域,编译时会给出一个告警: local variable 'str2' used without having been initialized 意思是说,“str2”这个变量没有初始化。我们可以不理会...

阅读全文>>