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

网站开发广告语大全网站推广和宣传的方法

网站开发广告语大全,网站推广和宣传的方法,广州网站建设信息科技有限公司,b2c电子商务网站制作对前一篇文章写点随笔:https://blog.csdn.net/weixin_43172531/article/details/132893176 基本数据类型(8种)和类型修饰符(4种): void与指针*组合在一起才有具体实体意义。 void本身代表没有类型、没有实体,例如void main(void)。 char c…

对前一篇文章写点随笔:https://blog.csdn.net/weixin_43172531/article/details/132893176

基本数据类型(8种)和类型修饰符(4种):

void与指针*组合在一起才有具体实体意义。
void本身代表没有类型、没有实体,例如void main(void)。

char char[]为字符、字符串,应该是运算成本最高的类型,很多时候可以考虑强转为整数进行处理。
float double的运算代价也相对于整数更大,也可以尽量考虑转换为整数处理。浮点数还有精度损失问题,可以考虑转换为整数处理。定义结构体实现无限制精度,PI的几十种无穷级数展开公式等。
int与short、long、signed、unsigned等修饰符的组合。目前一般int都定义为32bit,long定义为cpu字长。更安全的方式是i64 ui64这种定义方式。
_Bool类型,兼容了bool,未明确类型size,老方案中定义bool为int时,可以存任意非0的代表true,_Bool类型不行了,只有0、1。
_Complex为复数,c99提供了内置的语法支持,实际在此之前也可以用自定义结构体实现。新增这个内置类型,可能是有些新的硬件内置了复数的存储和运算支持,可以更好地利用硬件获得更高的运行效率。这也是硬件、数据结构、算法三位一体的设计体现。
_Imaginary为纯虚数,一般编译器都不支持,实际可能存在某些硬件层面的考虑,但可被_Complex涵盖。

复杂类型(5种)

struct告诉编译器变量顺序存放。
union告诉编译器变量重叠存放。
enum常量定义。不要忽略null、count概念。
typedef类型别名。
sizeof获得类型的byte大小,编译期计算。

实际只有struct、union两种类型定义方式,实际也不是类型定义,只是基础类型或者组合类型的内存排列方式的描述。编译器在编译期根据用户的定义去解释操作代码如何访问内存。机器码层面是没有复杂类型概念的,只有01概念。其实也没有float、char的概念。但,为了效率,现代的高性能cpu、gpu、cpu可能在硬件层面对特定基础类型进行了优化,有了特定指令。因此,老的认知可能需要重新调整。

存储级别关键字(7种)

auto、static、register、extern、const、volatile、restrict都是对编译器的引导,与内存的存储位置、访问方式、优化方式、链接方式等相关。

跳转结构(4种)

return 存储到eax寄存器
continue:跳过for、while的一次循环,但不跳出循环
break:跳出for、while、switch
goto最基础最原始的跳转,基本很少用

分支结构(5种)

if 尽量不写复杂的判断,拆开判断不容出错。
else 尽量不省略任何分支,即使确定没有也写上,输出错误信息。
switch case:尽量用连续整数做case分支,涉及编译器优化问题。将if 字符串判断转换为switch enum代码。
default分支:不要忽略空这个概念。

循环结构(3种)

for尽量用for,不容易出错。for(;😉;效率较高
do{break;}while(…)与while(…){break;} 容易出错。有些适用的场景。

左值lvalue右值rvalue

感觉左值与指针对象概念类似,右值与地址值的概念类型。左值是有实体的内存对象,右值是存储在某个地方的值,或者某个对象的属性,并不是一个有实体的对象。

inline

inline内联函数,函数实现必须可见,简单说,inline函数必须在h文件中。
本质是给编译器在编译器一个内联的建议,一是减少函数调用的上下文切换成本,二是使得编译后的函数二进制码尽量内聚,不跨页,达到最优执行效率。
典型的面向编译器编程思想,实际也带了一点面向硬件编程的思想。
同时存在跨平台、编译器问题。
对调试有一定影响。

_Alignas _Alignof

内存访问效率相关。一般边界建议是cpu字长,例如64bit对应8byte边界对齐。
函数一般是0x10边界对齐。
页边界是4096,实际大内存申请使用,最优策略就是4096的整数倍,且边界地址就在4096.
大内存被申请时,不一定在缓存、内存中,实际操作系统要等到第一次被访问时才会分配映射到虚地址上。那么,尽量不memset 0内存,其实是一个蛮好的策略。

_Atomic _Thread_local

用得少,多线程,边界资源共享读写的问题,底层实现涉及硬件支持。参考典型模式即可。
我记得在很久以前有篇文章说cpp本质上不支持多线程安全,目前看来,硬件、语法、基础库都有扩展,估计已经解决了这个老问题。
_Atomic可以修饰原子变量,也可以修饰原子函数。保证操作不可中断。
atomic_fetch_add、atomic_load
C11 引入了 <threads.h> 头文件来支持线程的创建、终止和管理。

#include <threads.h>
int thread_function(void *arg) {return 0;
}
int main() {thrd_t thread;thrd_create(&thread, thread_function, NULL);thrd_join(thread, NULL);return 0;
}

互斥量mtx_t

mtx_t mutex;
int shared_resource = 0;
void access_resource() {mtx_lock(&mutex);// ... manipulate shared resource ...mtx_unlock(&mutex);
}

条件变量cnd_t

#include <threads.h>
mtx_t mutex;
cnd_t cond;
int data_ready = 0;
void producer() {// ... produce data ...mtx_lock(&mutex);data_ready = 1;cnd_signal(&cond);mtx_unlock(&mutex);
}
void consumer() {mtx_lock(&mutex);while (!data_ready) {cnd_wait(&cond, &mutex);}// ... consume data ...mtx_unlock(&mutex);
}

_Generic

语法:_Generic( expression, association-list )

#define TYPE_NAME(x) _Generic((x), \int: "int", \float: "float", \double: "double", \default: "other" \
)

感觉是为了弥补宏功能缺陷的。适用场景可以提高效率,将部分运行期开销转移到编译期。
不同的数值类型选择适当的函数版本,可以间接实现函数重载。

_Noreturn

明确函数的语义。避免编译报错、告警。

_Static_assert

编译期告警。方便进行代码的安全性检查,例如对位域、union、struct的内存分布进行编译期检查,避免跨平台出现问题。

http://www.15wanjia.com/news/53312.html

相关文章:

  • 做相亲网站 一年赚千万google安卓版下载
  • wordpress 描述字段保定seo排名外包
  • wordpress msn space班级优化大师怎么下载
  • 做网站42类商标怎么选小类企业网站seo优化
  • 详情页设计风格南宁seo标准
  • cms网站内容管理系统今天全国疫情最新消息
  • 石龙网站开发北京网络营销推广公司
  • 做电路方案设计的网站沈阳seo网站推广
  • 为公司做网站上海seo优化bwyseo
  • 刷单网站开发系统优化软件有哪些
  • 国家骨干院校建设网站定制网站多少钱
  • 中国营销传播网app杭州网站建设方案优化
  • 网站助手 伪静态优化关键词排名优化公司
  • wordpress搜视网苏州关键词优化怎样
  • 龙港哪里有做百度网站的自己的网站
  • wordpress微信红包东莞seo报价
  • 淘宝网站所用编码网站关键词排名如何提升
  • 如何做阿里巴巴网站百度关键词规划师入口
  • 旅行社网站建设设计公司哪家好seo优化效果怎么样
  • 网站建设和编程的区别南宁seo推广
  • 百度做的网站国外可以打开吗销售网站
  • 网站子页怎么做免费优化推广网站的软件
  • 在线搭建网站营销策略国内外文献综述
  • 郑州网站建设有限公司7个经典软文营销案例
  • 上海哪家公司做网站比较好登封网络推广公司
  • 给政府做网站短视频营销推广方案
  • 网站规划与维护媒介星软文平台官网
  • 网站上面的水印怎么做必应搜索
  • 连山建设局网站余姚关键词优化公司
  • 帮你做海报网站seo优化标题