C语言
文章平均质量分 82
谢艺华
主要深耕于 linux 后端开发,热衷于体系能力(包括不限于C、C++、linux、编译原理、数据结构和算法、网络、操作系统
)的沉淀,分享工作中重要的知识点和具有代表性的案例分析。
欢迎志同道合的朋友与我一起前进
展开
-
案例分享:进程如何加载相同库的不同版本
本文分享了工作中的一个案例,由于历史原因。我们不得不在一个进程中采用两个不同的版本的相同算法库。识别到了潜在问题:符号重定义、全局符号介入、如何指定版本符号。并从理论与实践上分析解决。更深入了解运行时模块加载的好处与特殊场景。若我的内容对您有所帮助,还请关注我的公众号。不定期分享干活,剖析案例,也可以一起讨论分享。踩完您工作中的所有坑并分享给您,让你的工作无bug,人生尽是坦途。原创 2024-02-19 18:37:44 · 1145 阅读 · 0 评论 -
C语言中弱符号与弱引用的实际应用
在编码过程中,我们经常遇到符号重定义的错误。这就是符号重复定义导致的,再往细里面说,是在同一作用域内符号冲突。我们知道变量是由作用域和生命周期概念的。例1:main.cint main()return 0;strong.c则会报重定义错误。因为在main.c 和strong.c 文件中,整型变量strong是全局变量,它们的作用域都是跨文件的。若是在不同的作用域,即使相同变量名,也不会报错。原创 2021-09-17 14:57:06 · 922 阅读 · 3 评论 -
flaot 数据类型的一些坑(大数吃小数)
首先我们来看一段代码,你认为它会输出什么呢?解析:逻辑上就是将1.0进行累加2千万次。我们预计的结果应该是20000000。但是结果却如图:毫无疑问,这肯定和float数据类型有关,但是至于为什么会出现这个问题,我们一起来分析。原创 2020-05-15 15:33:51 · 8600 阅读 · 3 评论 -
lua 如何支持多线程操作?
栈的理解要向了解lua多线程,你就要知道栈的含义。这里我就直接摘录博客上的一些见解:栈就是一段特殊内存,什么是栈呢?举个例子,一个只有上面打开的盒子,现在有三本书离散数学、c语言、汇编语言,需要将这三本书一本一本的放进去,先将离散数学放进去,然后c语言,接着汇编语言,现在又需要将三本书拿出去,只能先拿汇编语言,再拿c语言接着再拿离散数学,栈就是这样的特点,后进先出。栈的大小...原创 2018-05-18 11:46:11 · 26130 阅读 · 3 评论 -
linux内核设计与实现--链表的启发
最近在抽空看《linux 内核设计与实现》这本经典之作。看到了内核的数据结构一章,发现内核链表的实现确实很优秀。(因为我平时写应用代码也会涉及到链表的操作,相比较而言,就显得我很low,没有对比就没有伤害)。今天就总结一下自己的启发。原创 2019-08-08 11:01:49 · 158 阅读 · 1 评论 -
关于重定向,看完你就懂了
例子对于不理解的同学,可以先直接运行一个demo,看看具体有什么区别,我们从结果来进行分析。#include<stdio.h>#include<fcntl.h>int main(){ printf("nihao \n"); perror("cuowu"); return 0;}之后进行编译,再测试:从结果我们可以看出,a.out > outf...原创 2019-09-04 11:56:04 · 2641 阅读 · 1 评论 -
C89标准、C99标准、C11标准的区别
用于指出__func__所存放的函数名,类似于字符串赋值。原创 2016-05-07 22:02:02 · 39270 阅读 · 1 评论 -
什么是幻数?
因为读者根本不知道16是什么意思,我相信即使是代码的编写者,你问他,他也需要联系上下文才能回答你这个问题。所以,这就是“幻数”。就是因为代码不是我们自己写的,所以我们不知道这个16是什么意思,这也暴露了一个问题,这段代码的。说到这里,我想大家应该都知道解决幻数的好处是什么了。因此我们写代码的时候,尽量避免幻数的出现。有很多种方式,比如枚举,宏替换都是解决幻数的有效方式。仅仅只是文字的表达,我相信恐怕有些朋友难以理解,那我就举个例子说明一下。我怎么可能知道,这代码又不是我写的,我怎么会知道他在想什么。原创 2016-06-03 13:50:27 · 10697 阅读 · 2 评论 -
什么是野指针?应该如何避免?
第一,当一个指针没有指向时,我们一般默认指向NULL。(NULL代表内存的0地址,并且NULL是不允许做任何操作的)请认真研究这样的表达式的优点,这个表达式在代码的维护性,扩展性都大大提高了。这方面是我们平时写代码时所应该提高的。我们在工作中,经常会遇到野指针引起的问题。终归到底,还是编码不规范导致的。的,因此我们只能避免野指针的出现,而不能杜绝。(请注意用词)我们在编程时,做到以下几点可以有效地避免野指针的出现。我相信只要大家在平时写代码是做到以上几点,是可以很好地避免野指针的出现。原创 2016-05-16 22:38:52 · 11198 阅读 · 2 评论