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

班级空间网站建设作用网络口碑营销案例分析

班级空间网站建设作用,网络口碑营销案例分析,大众软件回应中国芯片行业最大投资,计算机培训班出来好找工作吗(int *)malloc(10 * sizeof(int))memory allocate动态分配内存,malloc的出现时为了弥补静态内存分配的缺点,传统数组的长度一旦定义之后,就不能更改,比如说,如果我有一个业务在这之前给分配的大小为100,但是&#xff0…

(int *)malloc(10 * sizeof(int))memory allocate动态分配内存,malloc的出现时为了弥补静态内存分配的缺点,传统数组的长度一旦定义之后,就不能更改,比如说,如果我有一个业务在这之前给分配的大小为100,但是,我现在由于业务数量的增长,原来的大小就无法满足。静态分配不能跨函数调用,就是无法在另一个函数中,来管理一个函数中的内存。静态分配,只在当前函数有效,当静态分配所在的函数运行完之后,该变量就不能被其他的函数所调用。
加(int *)的目的是让计算机知道,如何去划分这个开辟的空间,因为char,int,long这些类型的字节大小是不一样的,我们知道了
首地址,还要知道是以几个字节为单元。所以这句话一共开辟了10*8个字节,这也就是为什么写sizeof(int)的原因,因为指针变量的长度是跟随计算机走的
void free(void *)C语言中释放内存空间的函数,通常与申请内粗空间的函数malloc结合使用,可以释放由malloc,calloc,realloc。ptr指针指向一个要释放的内存的内存块,该内存块之前是通过调用上述三个函数进行分配的。如果传递的参数是一个空指针,则不会执行任何动作。
void* calloc(size_t num ,size_t size)calloc函数也是与free函数配套使用的,使用方式与malloc基本相同,也是在堆区中申请动态内存空间,头文件为stdlib.h,返回类型为空指针,size_t num 为元素个数,size_t size为每个元素的字节大小,与malloc的区别,参数使用方式不同。malloc的使用效率较高,因为calloc在返回在堆区中申请的那块动态内存的起始之前---https://blog.csdn.net/weixin_63449996/article/details/124363422
realloc
内存重叠
静态分配的变量在函数执行完毕之后自动,该内存会自动释放。静态分配的内存,是在栈中分配的。传统数组(静态分配),不能手动释放,只能等待系统释放。
https://blog.csdn.net/sinat_29957455/article/details/60883355
动态分配的变量动态分配通过malloc分配,是在堆中分配的,对不是一种数据结构,它是一种排序方式,堆排序
https://blog.csdn.net/sinat_29957455/article/details/60883355
extern void* memset(
  void* __s,
  int __c,
  size_t __n)
memset(rstar, 0x00,sizeof(int)*10);
sizeof()
条件编译器#if #ifdef #ifndef,#endif,#else,#elif条件编译(condition compiling)命令指定预处理器依据特定的条件来判断保留或删除某段源代码,例如可以使用条件编译让源代码适用于不同的目标系统,而不需要管理该源代码的各种不同版本,预处理器会依次计算条件表达式,直到发现结果非0(也就是true)的条件表达式,预处理器会保留对应组内的源代码。一共后续处理,如果找不到值为true的表达式,并且该条件编译区域中包含#else命令,则保留#else命令内的代码。在预处理阶段结束时,没有被预处理器保留以用于后续处理的组会从程序中全部删掉。http://c.biancheng.net/view/449.html
defined
#define简单的宏定义:#define 标识符 替换列表(替换列表可以是数,字符串字面量,标点符号,运算符,标识符,关键字,字符常量,注意替换列表是可以为空的)
#undef取消某个宏定义
_Thread_local(C11新增)语义上就是线程的私有变量._Thread_local是新的存储类修饰符, 限定了变量不能在多线程之间共享。https://c.tedu.cn/notes/221985.html
线程存储类说明符。https://m.php.cn/manual/view/34232.html
_Static_assert(C11新增)编译器期间断言,当#if #error 预编译之后,编译器断言,assert是运行时断言,用的时候看具体的需求:https://c.tedu.cn/notes/221985.html
_Noreturn(C11新增)修饰函数句对不会有返回值,_Noreturn 声明的函数不会返回。引入此新的函数修饰符有两个目的:消除编译器对没有return的函数的警告,允许某种只针对不返回函数的优化:https://c.tedu.cn/notes/221985.html
_Generic(C11新增)C的泛型机制,高级函数宏:https://c.tedu.cn/notes/221985.html
_Generic ( assignment-expression , generic-assoc-list )
assignment-expression:赋值表达式,既传入_Generic函数的变量
generic-assoc-list:对赋值表达式产生的结果变量进行类型判断,并执行对此结果变量的执行函数
_Generic(a + 0.1f, int : b, float : c, default : b)++;
以上表达式:输入第一个参数为:a+0.1f  输出结果类型为浮点型,由于结果变量为float类型,将执行float:c这个类型和执行函数对,假设c值为2,最终c值输出为3
更过请参考:https://blog.csdn.net/qq_31243065/article/details/80904613
如果是switch case 是值判断,那么_Generic就是类型判断,执行对应的函数操作
_Atomic(C11新增)原子操作,原子锁:https://c.tedu.cn/notes/221985.html
c语言新增的类型限定符,不过编译器必须支持这一新特性
并发程序设计把程序执行分成可以同时执行的多个线程,这程序设计带来了新的挑战,包括如何管理访问相同数据的不同线程。C11通过包含可选的头文件stdatomic.h和thread.h,提供了一些可选的不是必须实现的管理办法,值得注意的是,要通过各种宏函数访问原子类型。当一个线程对一个原子类型的对象执行原子操作时,其他线程不能访问该对象。
所谓原子操作,就是该操作绝对不会在执行完毕前被任何其他事务或事件打断,也就是说,它的最小的执行单位,不可能有比它更小的执行单位,因此智利的原子实际是使用了物理学里面物质微粒的概念。
所以这里所说的原子操作,基本都包含我们三个方面所关心的语义:
Atomicity:操作本身是不可分割的
Visibility:一个线程对某个数据的操作何时对另外一个线程可见
Ordering:执行的顺序是否可以被重排
这有点类似互斥对象对共享资源的保护,但是原子操作更加接近底层,因为效率更高
参考:https://blog.csdn.net/Galaxy_Robot/article/details/106991200
ATOMIC_VAR_INIT(value) (value)(自C11以来)初始化一个新的atomic_flag(宏常量)
扩展为一个表达式,可以用来初始化一个与之类型相同的原子变量value。未使用此初始化的自动存储持续时间的源自对象的初始值未定义,但是,静态和线程局部变量的默认(零)初始化会生成有效值
如果这个宏不用于初始化一个原子变量,那么在从另一个线程初始化(即使通过一个原子操作)期间,任何访问数据竞争(如果地址通过memory_order_relaxed操作立即传递给另一个线程,则可能发生):https://m.php.cn/manual/view/34183.html
原子操作原子操作指的是对原子对象的读和写是不可被打断的,一个操作不可被打断意味着在执行整个操作过程中,即使有一个硬件中断信号过来,该中断信号也不能立即触发处理器的中断执行例程处理器必须执行完整条原子操作之后才可以进入中断执行例程
对于来自多个处理器核心对同一个存储空间的访问,存储器控制器回去仲裁当前那个原子操作先进行方寸操作,哪个后执行,这些访存操作都会被串行化
所以原子对象往往用于多核多线程并行计算中对多个线程共享变量的计算
参考:https://www.jianshu.com/p/606c4f2bae52
原子类型用_Atomic(类型名) 这种方式修饰的类型是原子类型,在实际使用原子类型时应当避免直接使用_Atomic (类型名)这种形式,而是直接用<stdatomic.h>头文件中已经定义好的原子类型。此外该头文件还有相应的原子操作函数。
参考:https://www.jianshu.com/p/606c4f2bae52
原子函数c语言中的原子操作是指在执行期间不会被中断的操作,这种操作通常用于多线程编程,以确保线程安全和数据的一致性。在C语言中原子操作可以通过使用特殊的函数来实现。C语言中的原子操作函数通常以atomic_开头。这些函数可以用于执行各种原子操作,例如读取和写入变量,增加和减少变量的值等。以下是一些常用的原子操作:
1.atomic_load:用于读取变量的值,并确保在读取期间不会被其他线程修改
2.atomic_store:用于将值写入变量,并确保写入期间不会被其他线程修改
3.atomic_add:用于将一个值加到变量中,并确保在加法期间不会被其他线程修改
4.atomic_sub:用于将一个值从变量中减去,并确保在减法期间不会被其它线程修改
5.atomic_exchange:用于交换两个变量的值,并确保在期间不会被其它线程修改
6.atomic_compare_exchange:用于比较两个变量的值,并在它们相等时将一个新值写入其中一个变量。这个操作可用于实现比较并交换
使用原子操作可以避免多线程编程中的静态条件和死锁问题,例如,如果两个线程同时尝试写入同一个变量那么可能会发生竞态条件,导致变量的值不确定。但是,如果使用原子操作来执行写入操作,那么只有一个线程能够成功的写入变量,从而避免了竞态条件
原子操作还可以用于实现锁和信号量等同步机制。例如,可以使用原子操作来实现一个简单的自旋锁。
参考https://wenku.baidu.com/view/a10982e987868762caaedd3383c4bb4cf7ecb783.html

tips: 你错过了那么可爱善良温柔漂亮性感聪明活好的女朋友,我要是你,我就选择自杀。

http://www.tj-hxxt.cn/news/30131.html

相关文章:

  • 青山网站建设营销页面设计
  • 广州比较好的网站建设企业快抖霸屏乐云seo
  • 网站开发合同拼多多商品关键词搜索排名
  • 中国做网站徐州百度快照优化
  • 中国城市建设网seo网站优化推广怎么样
  • 做淘宝优惠网站步骤惠州网络营销公司
  • 做vip的网站好做吗3步打造seo推广方案
  • 怎么样做网站代理商流程优化
  • wordpress注册表文件搜索引擎优化大致包含哪些内容或环节
  • 专门做喷涂设备的网站免费云服务器
  • 有人做网站推广吗百度手机版下载
  • 惠州最专业的网站建设公司seo推广培训班
  • 博物馆网站模版今日微博热搜榜前十名
  • 科学松鼠会 wordpress主题seo高级优化技巧
  • 如何 攻击网站广告关键词排名
  • 福建省网站建设方案书东莞seo代理
  • 网站特效模板下载地推团队联系方式
  • 企业做网站的公司有哪些爱站关键词挖掘软件
  • android系统开发重庆seo网站哪家好
  • 做网站充值微信必须是企业搜狗搜索旧版本
  • 网站上微信引流怎么做的发广告平台有哪些免费
  • vs2013做的网站沈阳seo关键词排名
  • 民营建筑网站网络营销推广方案案例
  • 广州网站设计制作报价产品宣传推广策划
  • 手机商城系统总结厦门seo
  • 网站建设添加视频教程视频号的网站链接
  • 做外汇查哪个网站培训机构哪家好
  • 广告设计公司相城黄埭安卓优化大师官方版
  • 十大免费开发平台app东莞seo外包平台
  • 鄞州网站设计湖南网站设计