C

C函数如何不通过传参修改外部变量

void fun_a(void) {   .... }      int main() {     int x = 5, y = 6;     fun_a();...

    196浏览0推荐0评论

    怎么学会正则表达式

    其实没那么麻烦了,Sublime Text 或 类似编辑器的 『ctrl + F』 足矣,平时开发顺带练了.记得打开左下的正则开关其实大部分涉及到字符串模式匹配的都可以用正则解决,我大概罗列下自己的经历1. 入门: 解决各个业务上的问题,比如邮箱、手机号等等,开始知道正则能解决什么问题,以及正则的受限性。2. 进阶: 比如在最初写GitHub - leeluolee/puer: more than...

      181浏览0推荐0评论

      java项目中的核心算法使用c++编写,是不是就失去了跨平台的特性

      高性能算法用java编写,虽然有跨平台的好处,但是在很多平台上都低性能,不如用C++,然后把平台不同的部分多写几遍,效果更好。该写代码就老老实实写,不会封装平台差异就学,老板不给时间提高在公司的不可替代性就辞职,不要妄想有什么相同的一组API在不同的平台上都可以发挥出最好的效果。...

        175浏览0推荐0评论

        让你瞠目结舌的C/C++代码技巧

        如果说「瞠目结舌」的话,IOCCC 上随便拿一篇获奖代码出来就足以让人下巴落地了。The International Obfuscated C Code Contest一个比较经典的例子是 1988 年得奖的代码,这个程序直接估算字符面积求圆周率,可读性算是比较友好的:•westley.c•#define _ F-->00||-F-OO--;int F=00,O...

          230浏览0推荐0评论

          如何用C语言画一个心形

          #include <stdio.h>int main() {     for (float y = 1.5f; y > -1.5f; y -= 0.1f) {    &nb...

            275浏览0推荐0评论

            初学者如何从零学习人工智能?看完你就懂了

            此文是想要进入人工智能这个领域、但不知道从哪里开始的初学者最佳的学习资源列表。一、机器学习有关机器学习领域的最佳介绍,请观看Coursera的Andrew Ng机器学习课程。 它解释了基本概念,并让你很好地理解最重要的算法。有关ML算法的简要概述,查看这个TutsPlus课程“Machine Learning Distilled”。“Programming Collective Inte...

              211浏览0推荐0评论

              为什么主引导记录的内存地址是 0x7C00?

              《计算机原理》课本说,启动时,主引导记录会存入内存地址0x7C00。这个奇怪的地址,是怎么来的,课本就不解释了。我一直有疑问,为什么不存入内存的头部、尾部、或者其他位置,而偏偏存入这个比 32KB 小1024字节的地方?昨天,我读到一篇文章,终于解开了这个谜。首先,如果你不知道,主引导记录(Master boot record,缩写为MBR)是什么,可以先读《计算机是如何启动的?》。简单说,计算机...

                140浏览0推荐0评论

                借 shared_ptr 实现 copy-on-write

                场景:一个多线程的C++程序,24h x 5.5d运行。有几个工作线程ThreadW{0,1,2,3},处理客户发过来的交易请求,另外有一个背景线程ThreadB,不定期更新程序内部的参考数据。这些线程都跟一个hash表打交道,工作线程只读,背景线程读写,必然要用到一些同步机制,防止数据损坏。这里的示例代码用std::map代替hash表,意思是一样的:typedef map<string,...

                  159浏览0推荐0评论

                  内核内存分配常用函数使用

                  1.kmallockmalloc内存分配和malloc相似,除非被阻塞否则他执行的速度非常快,而且不对获得空间清零.<tiger说明:在用kmalloc申请函数后,要对起清零用memset()函数对申请的内存进行清零。>kamlloc 函数原型void *kmalloc(size_t size, int flags);(1)第一个参数是要分配的块的大小(2)第二个参数是分配标志(fla...

                    186浏览0推荐0评论

                    深入理解 C++ 的动态绑定和静态绑定

                    为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改。关于对象的静态类型和动态类型,看一个示例:class B   {&n...

                      162浏览0推荐0评论

                      自旋锁和互斥锁区别 --- 经典

                      POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Critical Section)进行保护(另一种常用的同步机制是barrier)。Pthreads提供了多种锁机制:Mu...

                        188浏览0推荐0评论

                        C语言之从内存角度理解不同类型的变量

                        我们都知道在C语言中不同类型的变量在内存中的存放位置不同的,从内存角度上讲,不同内存块中存放的代码或者变量其属性(主要是作用域、生命周期、链接属性)是不同的。首先我们介绍一下作用域、生命周期已经链接属性的概念1:作用域作用域也就是指变量其作用的范围    (1)局部变量为代码块作用域(也就是说局部变量的作用范围是{  })  &...

                          132浏览0推荐0评论

                          关闭WebSocket连接

                          7.1.定义7.1.1.关闭WebSocket连接为_关闭WebSocket连接_,端点需关闭底层TCP连接。端点应该使用一个方法完全地关闭TCP连接,以及TLS会话,如果合适,丢弃任何可能已经接收的尾随的字节。当必要时端点可以通过任何可用的手段关闭连接,例如当受到攻击时。底层TCP连接,在大多数正常情况下,应该首先被服务器关闭,所以它持有TIME_WAIT状态而不是客户端(因为这会防止它在2个报...

                            217浏览0推荐0评论

                            浅谈c语言中的堆

                            操作系统堆管理器管理:堆管理器是操作系统的一个模块,堆管理内存分配灵活,按需分配。 大块内存:  堆内存管理者总量很大的操作系统内存块,各进程可以按需申请使用,使用完释放。 程序手动申请&释放:  手工意思是需要写代码去申请malloc和释放free。 脏内存:  堆内存也是反复使用的,而且使用者用完释放前不会清除,因此也是脏的。 临时性:  堆内存...

                              140浏览0推荐0评论

                              判断链表是否有环

                              判断一个单向链表是否有环。(指向表头结点的指针为head)方法一:(1)用两个指针p1和p2分别指向表头结点,即p1=p2=head(2)p1和p2分别采用1和2作为步长遍历该链表。(注意,p2应该检查当前结点的下一个结点是否为NULL)(3)如果p1或者p2遇到了NULL,则证明该链表没有环;若p1和p2在某时刻指向同一结点,则说明该链表有环。bool I***itsLoop(slis...

                                218浏览0推荐0评论

                                Android使用系统自带的相机实现一键拍照功能

                                今天分享的是用系统自带的相机实现一键拍照功能。public class MainActivity extends AppCompatActivity { private static final int TAKE_PHOTO = 100; private ImageView&nb...

                                  269浏览0推荐0评论

                                  PHP脚本的执行细节

                                  众所周知,计算机的CPU只能执行二进制的机器码,每种CPU都有对应的汇编语言,汇编语言编译器将汇编语言翻译成二进制的机器语言,然后CPU开始执行这些机器码。汇编语言作为机器语言与程序设计者之间的一个层,给我们带来了很多方便,程序员不需要用晦涩的01数字来书写程序,当然人们并不满足这样的一个进步,于是在汇编语言之上又多了一个层——C语言,C语言更贴近人类熟悉的“自然语言”,程序设计者可以通过C语言编...

                                    242浏览0推荐0评论

                                    PHP内核探索 —— 变量的类型转换

                                    现在我们已经可以从符号表中获取用户在PHP语言里定义的变量了,是该做点其它事的时候了,举个比例,比如给它来个类型转换  。想想C语言中的类型转换细则,你的头是不是已经大了?但是变量的类型转换就是如此重要,如果没有,那我们的代码就会是下面这样了:void display_zval(zval *value) {     s...

                                      224浏览0推荐0评论

                                      C语言嵌入式系统编程-----软件架构

                                      模块划分模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了>相对论), C语言模块化程序设计需理解如下概念:(1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块...

                                        176浏览0推荐0评论

                                        ARM中C和汇编混合编程

                                        ARM中C和汇编混合编程及示例在嵌入式系统开发中,目前使用的主要编程语言是C和汇编,C++已经有相应的编译器,但是现在使用还是比较少的。在稍大规模的嵌入式软件中,例如含有OS,大部分的代码都是用C编写的,主要是因为 C语言的结构比较好,便于人的理解,而且有大量的支持库。尽管如此,很多地方还是要用到汇编语言,例如开机时硬件系统的初始化,包括 CPU状态的设定,中断的使能,主频的设...

                                          229浏览0推荐0评论

                                          C语言编程程序的内存如何布局

                                          重点关注以下内容:  C语言程序在内存中各个段的组成  C语言程序连接过程中的特性和常见错误  C语言程序的运行方式  一:C语言程序的存储区域  由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。编译过程把C语言文本文件生成汇编程序,汇编过程把汇编程序形成二进制机器代码,连接过程则将各个源文件生成的二进制机器代码文件组合成一个文件。  C语言编写的程序经过编...

                                            166浏览0推荐0评论

                                            一个简单的C语言实现的线程示例

                                            一个简单的C语言实现的线程示例在看《Beginning Linux Programming》时,为了更好的理解线程的概念,书中列举了这样一个小例子:#include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #in...

                                              298浏览0推荐0评论

                                              没学过C语言的代价

                                              C语言确实显得有些老旧。最近一版权威性的C语言还是1988年发布的;在接近30年的时间里,这个语言的作者一直都没有对它进行过更新,可见它有多过时了。现在,一说到必须有所了解的编程语言,大家都会想到Rust、Go或是Clojure,却很少有人会想到C语言。但是我的同事Myles和我都不是追求潮流的人,因此我们坚持让所有学生都熟练掌握C语言。之所以要求学生学习这门古老的编程语言,我们有下面4个理由:在...

                                                187浏览0推荐0评论

                                                inline函数的用法

                                                  在c/c++中,为了解决一些频繁调用的小函数大量消耗栈空间或是叫栈内存的问题,特别的引入了inline修饰符,表示为内联函数。栈空间就是指放置程式的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足所造成的程式出错的问题,函数的死循环递归调用的最终结果就是导致栈内存空间枯竭。下面我们来看一个例子:#include <stdio....

                                                  212浏览0推荐0评论

                                                  判断链表是否有环

                                                  判断一个单向链表是否有环。(指向表头结点的指针为head)方法一:(1)用两个指针p1和p2分别指向表头结点,即p1=p2=head(2)p1和p2分别采用1和2作为步长遍历该链表。(注意,p2应该检查当前结点的下一个结点是否为NULL)(3)如果p1或者p2遇到了NULL,则证明该链表没有环;若p1和p2在某时刻指向同一结点,则说明该链表有环。bool I***itsLoop(slis...

                                                    218浏览0推荐0评论

                                                    浅谈c语言中的堆

                                                    操作系统堆管理器管理:堆管理器是操作系统的一个模块,堆管理内存分配灵活,按需分配。 大块内存:  堆内存管理者总量很大的操作系统内存块,各进程可以按需申请使用,使用完释放。 程序手动申请&释放:  手工意思是需要写代码去申请malloc和释放free。 脏内存:  堆内存也是反复使用的,而且使用者用完释放前不会清除,因此也是脏的。 临时性:  堆内存...

                                                      140浏览0推荐0评论

                                                      关闭WebSocket连接

                                                      7.1.定义7.1.1.关闭WebSocket连接为_关闭WebSocket连接_,端点需关闭底层TCP连接。端点应该使用一个方法完全地关闭TCP连接,以及TLS会话,如果合适,丢弃任何可能已经接收的尾随的字节。当必要时端点可以通过任何可用的手段关闭连接,例如当受到攻击时。底层TCP连接,在大多数正常情况下,应该首先被服务器关闭,所以它持有TIME_WAIT状态而不是客户端(因为这会防止它在2个报...

                                                        217浏览0推荐0评论

                                                        C语言之从内存角度理解不同类型的变量

                                                        我们都知道在C语言中不同类型的变量在内存中的存放位置不同的,从内存角度上讲,不同内存块中存放的代码或者变量其属性(主要是作用域、生命周期、链接属性)是不同的。首先我们介绍一下作用域、生命周期已经链接属性的概念1:作用域作用域也就是指变量其作用的范围    (1)局部变量为代码块作用域(也就是说局部变量的作用范围是{  })  &...

                                                          132浏览0推荐0评论

                                                          自旋锁和互斥锁区别 --- 经典

                                                          POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Critical Section)进行保护(另一种常用的同步机制是barrier)。Pthreads提供了多种锁机制:Mu...

                                                            188浏览0推荐0评论

                                                            深入理解 C++ 的动态绑定和静态绑定

                                                            为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改。关于对象的静态类型和动态类型,看一个示例:class B   {&n...

                                                              162浏览0推荐0评论
                                                              首页上一页12下一页尾页

                                                              推荐作者

                                                              热门手记