Linux开发简单多进程应用

2017-03-02
阅读 5 分钟
5.2k
进程间通信(IPC,InterProcess Communication)是指在不同进程之间传递或交换信息。IPC常见的方式有:管道(无名管道、命名管道)、消息队列、信号量、共享内存、磁盘文件、Socket等,其中Socket网络方式可以实现不同主机上的多进程IPC

make和makefile,多文件项目管理

2015-09-16
阅读 6 分钟
13.6k
作为项目的组成部分,各个模块不可避免的存在各种联系,如果其中某个模块发生改动,那么其他的模块需要相应的更新。如果通过手动去完成这个工作的话,对于小型的项目可能还行,但是对于比较大型的项目就几乎是不可能的。

C语言的预处理、宏、文件包含

2015-09-16
阅读 2 分钟
4.1k
C语言介绍 C的开发流程 C 是一种编译型语言,所谓编译型语言是指在程序运行之前,需要先经过编译和链接过程: 编辑源文件(获得源文件) 编译源文件(获得目标文件) 链接目标文件及库文件(获得可执行文件) 运行程序(获得运行结果) 对变量定义的理解 比如: int i; 定义一个变量的过程实际上是向内存申请一个符合这...

回溯法解决N皇后问题(以四皇后为例)

2015-09-10
阅读 3 分钟
62k
以4皇后为例,其他的N皇后问题以此类推。所谓4皇后问题就是求解如何在4×4的棋盘上无冲突的摆放4个皇后棋子。在国际象棋中,皇后的移动方式为横竖交叉的,因此在任意一个皇后所在位置的水平、竖直、以及45度斜线上都不能出现皇后的棋子,例子

Linux gdb调试器用法全面解析

2015-09-10
阅读 10 分钟
12.5k
转载自:Linux gdb调试器用法全面解析 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能: 启动程序,可以按照工程师自定义的要求随心所欲的运行程序。 让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式。 当程序被停住时,可以检查此时程序中所发生的事...

具体的知识 && 知识在项目中的应用(以指针和内存的知识引出)

2015-09-07
阅读 2 分钟
2.8k
第一种方式就是创建了一个线程,这个线程去执行,但是你却没有这个线程对象的指针,所以你不能去控制它,只能任由它去执行,如果能自己结束还好,但是如果是一个循环执行的线程,那么就可能在那里永远执行下去,因为你在创建它的时候,没有记录这个线程对象的指针,所以你就没办法去控制它。其实对于线程还好,你可以设...

C/C++在内存分配和释放时,小心野指针

2015-09-04
阅读 1 分钟
11.7k
因为在通过 free(p)释放了内存之后,只是将内存进行了释放,不能再使用这块内存,但是这时候p还是会指向这块内存(所以还有通过指针访问这块内存的可能性),所以为了安全,为了不出现后续无意中引用了p就可能会造成错误的情况,就需要在释放了内存之后,显式的将指针置为NULL

Delphi的数组名和C/C++的数组名

2015-09-04
阅读 2 分钟
2.7k
那么数组名 i 就是一个指针(准确的说是指针常量,因为它只能指向这个数组的首地址,不能被更改再去指向其他的地址),其就等于 &i[0] (取 i 数组的第一个元素的地址)

C语言中pi=&j和*pi=j的区别

2015-09-04
阅读 2 分钟
5.1k
C语言中的指针是一个难点,主要是感觉很绕,其实C/C++中的指针和Delphi的指针的原理都是一样的,所以这里讲的一个C/C++的例子也适用于Delphi

指针数组和数组指针---C/C++中int *p[4]和int (*p)[4]的区别

2015-09-04
阅读 1 分钟
9.7k
简单介绍 C/C++中的这两种书写方法实在是很像,但是它们的含义有很大的不同,所以一定要能清晰地辨别它们。 简单地说,int *p[4]是指针数组,int(*p)[4]是指向数组的指针 指针数组:是一个元素全为指针的数组;数组指针:可以理解为指针,只是这个指针类型不是int而是int[4]类型的数组 int *p[4],p是一个指针数组,每一...

函数指针---C/C++中int *f(4)和int (*f)(4)的区别

2015-09-04
阅读 1 分钟
4.2k
int (*f)(),表示这是一个函数指针,它要指向一个函数才能有用,指向一个函数之后就可以用它来代替该函数,之后使用这个指针就相当于使用该函数。

比较C/C++和Delphi中的字符串和字符数组(数组和动态分配内存的情况)

2015-09-03
阅读 2 分钟
6.7k
C/C++中的字符串、字符数组、字符指针分配的内存空间 我们知道在C/C++中,我们可以这样理解字符串和字符数组 1) 字符串,就是一个以 '0' 结尾的字符数组 2) 字符数组,包括字符串,但是不一定要以 '0' 结尾,如果不是以'0' 结尾,那么就不能当做字符串使用 在C/C++中,使用字符串可以通过数组,也可以通过为字符指针动态...

指针和字符串和字符串常量、用gdb来获取非法内存中的内容

2015-09-03
阅读 2 分钟
4.1k
例程1 {代码...} 例程2 {代码...} 例程3 字符串开始位置没有规定,但是规定必须以'0'作为结尾标识符 {代码...} 编译调试例程3看看效果 假设例程3命名为string.c 用命令gcc -g -o string string来编译程序 再用gdb ./string来调试程序 break mainrunnextnext 现在步进到想要调试的位置 print s 显示结果$1 = 0x40061c "he...

gcc常用命令

2015-09-02
阅读 3 分钟
4k
GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 GNU Compiler C...

Delphi和C的类比:指针、字符串、函数指针、内存分配等

2015-09-02
阅读 4 分钟
6.3k
在学习Delphi的时候,一个很好的建议是和C/C++去类比着学习,从指针,到内存管理,到数组,到面向对象……各个方面,都是有很多可以相似和或者也有不同的方,类比着学习,一方面加深对Delphi的理解,一方面加深对C/C++的理解,一方面加深对计算机系统的理解,一方面加深对面向对象的理解……由1向多可以很方便的扩展,而且完...

区分指针、变量名、指针所指向的内存

2015-09-02
阅读 1 分钟
3.4k
指针本身是一个值,但是这个值的含义是一个地址(当然也需要内存去存储这个地址值,所以有指向指针的指针,以及指向指向指针的指针,……),这个地址指向的是一个内存,这块内存中存储着数据,当然如果指针为NULL,就表示指针不指向任何一块内存。

内存的分配与释放,内存泄漏

2015-09-02
阅读 4 分钟
9k
和在使用一个数据之前必须要对数据进行初始化一样,否则可能会使得数据的值不确定,那就会给程序埋下很大的隐患,在使用指针之前也必须要对指针进行”初始化“,参见下面的例程1:

正确理解C/C++中的传值调用/传址调用/引用调用

2015-09-01
阅读 2 分钟
15.7k
并没有完成交换,因为在传参调用中,main调用swap时候,将实参a, b的值分别拷贝给形参x, y,然后a, b就不再和swap有关了,swap交换的是x, y的值,但是x, y的作用域只在swap中,他们确实完成了交换,但是swap结束之后,x, y的值也就随之销毁了,所以根本不会对行参有任何影响,当然就不会实现实参的交换