![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言相关
wuhuan_001
这个作者很懒,什么都没留下…
展开
-
关于全局变量的若干细节
上次在网上偶遇一题,大致如下:假设str为在任何函数外申明的变量,分别指出以下str在何时初始化,存于何处,并画出其内存结构图:1) char str[] = "hello";2) char str[] = {'h', 'e', 'l', 'l', 'o'};3) char *str = "hello"; 4) const char str[] = "he转载 2013-03-25 23:14:54 · 1106 阅读 · 0 评论 -
C#事件与委托详解【精华 多看看】
Delegatedelegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类。与其它的类不同,delegate类能够拥有一个签名(signature),并且它"只能持有与它的签名相匹配的方法的引用"。它所实现的功能与C/C++中的函数指针十分相似。它允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m。但与函数指针相比,delegate有许多函数委托转载 2013-12-31 20:55:20 · 1012 阅读 · 0 评论 -
C中CONST的使用
基本解释 const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。 虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面几个问题。 问题:const变量 & 常量 为什转载 2013-12-31 21:29:52 · 422 阅读 · 0 评论 -
*p++移动的byte数
不同数据类型的变量,占用的字节数不同,系统把变量占据存储单元的第一个字节的地址作为该变量的地址。⑴ 间接访问运算用变量名对其所对应的存储单元的内容进行读写称为直接访问,而通过存储单元的地址对其内容进行读写的则称为间接访问。尽管指针变量中保存的是存储单元的地址,而引入指针的目的主要是为了更方便快捷地访问存储单元的内容。间接访问是在引用的指针变量前面加一个“*”号,用来表示指针所指向的存储单元转载 2014-01-01 21:05:07 · 705 阅读 · 0 评论 -
相对定位、绝对定位差别
层的应用及其定位(绝对定位和相对定位) 大家都知道,为了让网页能够自动地适应用户设置的分辨率,在网页制作过程中人们采用了百分比的设置方式,从而页面的所有元素从新排版,保证原来的格式。但如果你在页面上使用了层,你会发现当浏览器大小改变时,层的位置却没有改变,结果它和其他的元素之间的配合出现了错位现象,页面变得杂乱无章了。而我们是不能够强制用户使用特定的分辨率的,那么就只有想办法让层的位置也能够转载 2014-01-01 21:06:28 · 1073 阅读 · 0 评论 -
DUMPBIN命令使用详解
一、命令详解在使用VC时,可以用DUMPBIN。EXE来得到某个DLL中所输出的符号的清单。如下面的命令:dumpbin -exports Cmpnt1.dll如:C:/WINDOWS/system32>dumpbin -exports msgsvc.dllMicrosoft (R) COFF Binary File Dumper Version 6.00.8447转载 2014-01-01 21:41:03 · 819 阅读 · 0 评论 -
malloc、calloc区别 分配在哪里
函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别。malloc()函数有一个参数,即要分配的内存空间的大小: void*malloc(size_tsize);calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小。void*calloc(size_tnumElements,size_tsizeOfElem转载 2014-01-01 21:05:42 · 958 阅读 · 0 评论 -
VC++动态链接库(DLL)编程深入浅出
1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用转载 2014-01-01 21:40:14 · 742 阅读 · 0 评论 -
一个C#睡前故事
英文版原作者:Chris Sells(www.sellsbrothers.com)翻译:袁晓辉(www.farproc.com http://blog.csdn.net/uoyevoli) 紧耦合从前,在南方一块奇异的土地上,有个工人名叫彼得,他非常勤奋,对他的老板总是百依百顺。但是他的老板是个吝啬的人,从不信任别人,坚决要求随时知道彼得的工作进度,以防止他偷懒。转载 2014-01-02 22:36:11 · 436 阅读 · 0 评论 -
《珍藏TC2.0》: TCC.exe,TLink.exe,TLib.exe 命令行选项及其使用!
在开始看本文以前,我先说明一下C语言的安装和使用中最应该注意的地方: 许多网友在下载Turbo C 2.0和Turbo C++ 3.0后,向我问得最多的是在使用过程中碰到如下问题: 1)出现找不到 stdio.h conio.h等include文件; 2)出现cos.obj无法连接之类的错误 这些问题是由于没有设置好路径引起的,目前下载的TC2,TC3按安装分类大概有两种版本:一是转载 2013-12-28 00:12:01 · 1361 阅读 · 0 评论 -
sprintf 用法 注意事项
源:http://hi.baidu.com/woxlinoble/blog/item/b02a8a82fd795190f603a6d2.html 由于sprintf跟printf在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf比printf有用得多。所以本文着重介绍sprintf,有时也穿插着用用pritnf。sp转载 2013-12-30 22:15:11 · 707 阅读 · 0 评论 -
C/C++中指针和引用之相关问题研究
源:http://blog.csdn.net/pathuang68/archive/2009/04/14/4071672.aspx 一、基本知识指针和引用的声明方式:声明指针:char* pc;声明引用:char& rc = 0; 它们的区别:从现象上看,指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。这句话可转载 2013-12-30 22:32:17 · 673 阅读 · 0 评论 -
C编程中使用全局变量应注意的事项
1、尽量用局部变量替代全局变量。如果用局部变量能实现功能,最好用局部变量。2、在函数仅仅只是要用到某个全局变量,而无需改动时,就将全局变量通过形参传递进来,变成局部变量使用。并在定义时使用const。这是避免全局变量在函数中被意外的改动。如在判断语句中将'=='误写成'='。这时首先因为在函数内的是局部变量所以即使出错也不会影响全局变量和其他函数或模块。其次因为定义的是const类转载 2013-03-25 23:16:35 · 1034 阅读 · 0 评论 -
尽量不要使用全局变量
1. 能不用全局变量尽量不用,我想除了系统状态和控制参数、通信处理和一些需要效率的模块,其他的基本可以靠合理的软件分层和编程技巧来解决。2. 如果不可避免需要用到,那能藏多深就藏多深。1)如果只有某.c文件用,就static到该文件中,顺便把结构体定义也收进来;2)如果只有一个函数用,那就static到函数里面去;3)如果非要开放出去让人读取,那就用函数return转载 2013-03-25 23:17:19 · 6641 阅读 · 1 评论 -
全局变量、局部变量、静态全局变量、静态局部变量在内存里的区别以及栈与堆的区别
全集变量、局部变量、静态全局变量、静态局部变量在内存中如何存储,有什么区别,栈和堆的区别,这都是C/C++的基础问题。在各种招聘笔试面试中,经常都能够遇到与之相关的问题。前些日子我看了一些与之相关的文章,现在总结一下存放于此。先分析一下四种变量的区别: 一、先由程序的内存分配说起,一个完整的C/C++程序在运行时会占用的内存分为几个部分。栈(stack):由编译器自转载 2013-12-28 13:58:29 · 2050 阅读 · 0 评论 -
sizeof与strlen的区别
读了别人的写了http://zhidao.baidu.com/question/12033577.html, 自己重新归纳了一下!1. sizeof 操作符的结果类型size_t,它在头文件中typedef为unsigned int类型: typedef unsigned int size_t.2. sizeof是是长度运算符, 获得数据类型或是变量的长度,如果是数据类型,则返回数据类转载 2013-12-28 15:21:09 · 387 阅读 · 0 评论 -
关于C语言中的结构体对齐
(1)什么是字节对齐 一个变量占用 n 个字节,则该变量的起始地址必须能够被 n 整除,即: 存放起始地址 % n = 0, 对于结构体而言,这个 n 取其成员种的数据类型占空间的值最大的那个。(2)为什么要字节对齐 内存空间是按照字节来划分的,从理论上说对内存空间的访问可以从任何地址开始,但是在实际上不同架构的CPU为了提高访问内存的速度,就规定了对于某些类型的数据只能从转载 2013-12-28 15:21:46 · 466 阅读 · 0 评论 -
多线程中对全局变量(整型类型)是否需要同步操作
背景:如果有一个类型为int的全局变量a, 线程A对a仅进行读操作,线程B对a仅进行写操作,那么两个线程在操作a时是否需要加锁来保持同步呢? 这个不能简单判断一定要加锁或是不加锁。要分情况讨论。 情况一:如果线程A读取a的目的仅为了显示给界面,或者a满足一定条件后执行某些操作,而在执行这些操作过程中对a是否发生了变化并不关心;一转载 2013-12-28 15:23:40 · 983 阅读 · 0 评论 -
关于C语言的几道基础题
1.如果int a = 1, b = 2, c = 3, d = 4;则条件表达式 "a 解析:条件操作符?:的结合性为从右至左,那么表达式的结合性用括号表示:(a 答案:12.已知 i = 10; 表达式 "20 - 0 解析:在双目运算符中,算术运算符的级别最高,关系运算符次之,逻辑运算符最低。表达式的结合性用括号表示(20 - 0) 答案:13.已知转载 2013-12-28 15:24:18 · 494 阅读 · 0 评论 -
局部变量、全局变量、堆、堆栈、静态和全局【】
预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 堆区(heap) — 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 全局区(静态区)(static)—,全局变量和静态转载 2013-12-28 15:29:04 · 422 阅读 · 0 评论 -
break -- continue
break可以离开当前switch、for、while、do while的程序块,并前进至程序块后下一条语句,在switch中主要用来中断下一个case的比较。在for、while与do while中,主要用于中断目前的循环执行。continue的作用与break类似,主要用于循环,所不同的是break会结束程序块的执行,而continue只会结束其之后程序块的语句,并跳回循环程序块的开头继续转载 2013-12-30 22:29:20 · 462 阅读 · 0 评论 -
typedef定义函数类型
本文转载于:http://www.2cto.com/kf/201206/136745.html最近在看posix实时信号时,遇到一处函数是如此定义的:[cpp] view plaincopytypedef void sigfunc_rt(int, siginfo_t *, void *); 在我常规理解里,一般定义一转载 2015-01-15 21:48:18 · 560 阅读 · 0 评论