• 好好学习,天天向上~
  • 欢迎欢迎~

最新发布 第5页

刘冲的博客一个程序猿的自我修养

c语言

三分钟弄清楚C语言为何函数退出就不能使用局部变量了,不初始化局部变量会出错吗

上一次,我们说到了全局变量和局部变量,并且介绍了局部变量在函数返回后,就会被释放。而全局变量却可以一直保存到程序结束,这是为什么呢?在回答这个问题之前,请看下面这张非常经典的图: 这个图就是程序在运行所需的内存布局。简单来说,就是程序在运行时会占用内存,占用的内存每个区域用途都...

lcc 1个月前 (11-02) 106℃ 0评论 0

杂谈

一文弄懂C语言的全局变量和局部变量,它们会冲突吗

不知道大家如何,反正我最开始接触 C 语言编程时,最让我觉得神奇的就是变量的使用了,“a=1”之后又可以“a=0”。事实上,不仅仅是 C 语言,无论哪一门编程语言,变量都是基石,离开变量啥都做不了。 变量和赋值 请看下面的例子,很容易明白,变量只是一个容器,真正具有使用意义的是...

lcc 1个月前 (11-02) 84℃ 0评论 1

杂谈

单核电脑为什么也可以同时执行很多程序?cpu核心越多越好吗?

cpu(central processing unit,中央处理器)是计算机的大脑,所有需要运算和处理的数据都会送给 cpu 处理。现在计算机的 cpu 制造技术已经比较发达,没有几个核心的计算机,似乎都是“老古董”了。那么,计算机 cpu 的核心数到底是什么意思呢?有人说,一个...

lcc 2个月前 (10-30) 59℃ 0评论 1

c语言

编译器是怎样优化代码的?如何查看编译器是否优化代码?怎样避免编译器优化代码?volatile关键字的使用

上次我们说到现代编译器已经非常聪明,为了保证程序的执行效率,会在编译时对代码做优化。水平较低的程序员写出的代码比较臃肿,编译器的优化确能够增加程序的执行效率。但是,编译器有时“聪明过了头”,自以为是的把有用的语句优化掉了,反而导致程序不能正常工作。 例如下面这几句代码, int...

lcc 2个月前 (10-29) 80℃ 0评论 1

c语言

linux多线程编程中IO读写的安全函数,pread/pwrite和read/write有什么区别和联系,实例代码对比

pread 和 pwrite 函数是 linux 下 C 语言编程中非常好用的 IO 操作函数。它们属于系统调用,在 2.1.60 之后版本的 linux 下都可以使用,尤其适合用于多线程的应用中,它们允许多个线程操作同一个文件描述符,不会互相影响彼此的文件偏移(offset)。...

lcc 2个月前 (10-25) 191℃ 0评论 2

c语言

linux c语言多线程编程怎么传递参数?创建线程后立刻返回,出现段错误(Segmentation fault)的原因和解决办法

linux 下 c 语言编程,使用多线程是方便的。有时候,我们需要函数创建线程后立刻返回,线程继续在后台运行。可是,却很容易出现段错误(Segmentation fault),请看下面这段代码: #include <stdio.h> #include <pth...

lcc 2个月前 (10-23) 127℃ 0评论 3

linux笔记

linux c语言编程,使用setjmp和longjmp函数自制类似python的try-catch模块捕获异常,建立栈数据结构,实现多级嵌套使用(2)

上一节的代码,虽然成功的用 C 语言模拟了 python 的 try 功能,但是因为使用全局变量保存现场信息(env),所以有两个致命问题: 覆盖了原有的信号处理函数。 信号处理函数不能传递参数,因此只能使用全局变量,但是这样一来,模拟 try 功能就不能支持嵌套使用了。 ...

lcc 2个月前 (10-23) 98℃ 0评论 2

c语言

linux c语言编程,使用setjmp和longjmp函数自制类似python的try-catch模块捕获异常,处理段错误,浮点错误等信号错误(1)

程序的非逻辑错误 程序出错大体可以分两种,一种是出错时,程序不会退出,可以继续往下执行,例如 open 文件失败,也只是无法打开文件而已,程序还可以执行我们设定的错误处理语句,比如打印出错误信息等。还有一种错误发生时,程序直接就退出了,例如非法操作指针引起的段错误,把 0 做被除...

lcc 2个月前 (10-21) 116℃ 0评论 2

c语言

linux多cpu编程,为线程指定cpu,sched_setaffinity和sched_getaffinity的详解与使用,使用time命令得到程序执行时间

查看 linux 主机的 cpu 信息 在linux主机下执行lscpu命令,可以得到如下结果: $ lscpu | grep -i 'core.*:|socket' Thread(s) per core: 2 Core(s) per socket: 2 Socket...

lcc 2个月前 (10-11) 192℃ 0评论 0