自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (10)
  • 收藏
  • 关注

转载 c语言中不允许在函数外部给全局变量赋值

今天,在写条件编译的时候,出现了在函数外部给全局变量赋值的情况,gcc报错,那么c语言为什么不允许在函数外部给变量赋值呢?为什么声明变量的时候可以对变量进行赋值?出错代码: 1 /* 2 * ====================================================================================

2014-10-31 22:30:44 5663

转载 使用指针时的“陷阱”

C语言诡异离奇,陷阱重重,却获得了巨大成功!”——C语言之父Dennis M.Ritchie。Ritchie大师的这句话体现了C语言的灵活性以及广泛的使用,但也揭示了C是一种在应用时要时刻注意自己行为的语言。C的设计哲学还是那句话:使用C的程序员应该知道自己在干什么。有时用C写的程序会出一些莫名其妙的错误,看似根源难寻,但仔细探究会发现很多错误的原因是概念不清。在我们经常掉进去的这些“陷阱”中,围

2014-10-19 12:08:12 740

转载 求教关于被调函数中的malloc与free

问题:在子函数中动态分配内存:p=(int*)malloc(a*sizeof(int)),这个函数的目的是返回p:return(p)我想问问,该在什么地方进行free(p)呢?如果在子函数中的return前free是肯定不行的,在之后free?子函数的return之后,不就结束函数调用了吗?那时候free还会被子函数执行吗?

2014-10-18 21:11:44 4538

转载 C语言数组参数与指针参数

我们都知道参数分为形参和实参。形参是指声明或定义函数时的参数,而实参是在调用函数时主调函数传递过来的实际值。一、一维数组参数1、能否向函数传递一个数组?看例子:void fun(char a[10]){   char c = a[3];}intmain(){   char b[10] = “abcdefg”;   fun(b[10]);   retu

2014-10-14 20:39:33 952

转载 指针参数是如何传递内存的?

如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1中,Test函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,为什么? void GetMemory(char *p, int num){    p = (char *)malloc(sizeof(char) * num);}

2014-10-14 20:24:11 766

转载 C语言中main函数之前可以进行赋值作吗?

这两天用结构模拟面向对象的方法在C语言中编写硬件的驱动程序,涉及到多文件的变量的初始化问题。如下:       在DS1302.h中定义了一个结构:       typedef struct{    void (*fun1);    void (*fun2);   }DS1302_T;  extern DS1302_T ds1302;  并声

2014-10-31 22:38:57 2203

转载 菜鸟在C语言编译,链接时可能遇到的两个问题

菜鸟在C语言编译,链接时可能遇到的两个问题最近在看 CSAPP (Computer Systems A Programmers Perspective 2nd) 的第七章 链接。学到了点东西,跟大家分享。下文中的例子都是出自CSAPP第七章。另外,也可以结合酷壳上的这篇文章和之后的留言来看本文,理解会更加深刻一些。1.问:如果在不同的C源文件中定义了相同名称的全局变量会有什么样

2014-10-31 22:11:41 758

转载 Linux的.a、.so和.o文件

在说明Linux的.a、.so和.o文件关系之前,先来看看windows下obj,lib,dll,exe的关系 windows下obj,lib,dll,exe的关系    lib是和dll对应的。lib是静态链接库的库文件,dll是动态链接库的库文件。     所谓静态就是link的时候把里面需要的东西抽取出来安排到你的exe文件中,以后运行你的exe的时候不再需要li

2014-10-31 22:04:15 732

原创 什么时候需要动态分配内存?

我讲解一下c语言中动态分配内存的函数,可能有些初学c语言的人不免要问了:我们为什么要通过函数来实现动态分配内存呢?系统难道不是会自动分配内存吗??既然有人会问这样的问题,那么我在这里好好的讲解一下吧!首先让我们熟悉一下计算机的内存吧!在计算机的系统中有四个内存区域:1)栈:在栈里面储存一些我们定义的局部变量以及形参(形式参数);2)字符常量区:主要是储存一些字符常量,比如:char *p_str=

2014-10-31 10:31:08 3665 1

转载 数组给数组赋值问题

char a[3],b[]="China";a=b;printf("%s",a);这个程序段运行后的结果是China,还是本来就是错误的??C语言中数组能这样直接相等吗??楼主可能把指针和数组名的作用给混淆了! 我看了楼上的解释,很详细,但恐怕楼主既然提出了这样的问题,估计也看不懂上面的解释,或者费解!我给你稍微解释下:首先数组名a和b的值是地址,各表示a[3],b[]这两个数组的首地址,而且数

2014-10-31 10:26:17 3457

转载 数组,结构体初始化 {0}

一直以为 int a[256]={0};是把a的所有元素初始化为0,int a[256]={1};是把a所有的元素初始化为1.调试的时查看内存发现不是那么一回事,翻了一下《The C++ Programming Language》总算有定论。PDF的竟然不然复制,就把它这章翻译了,如下5.2.1   数组初始化数组可以用一个列值来初始化,例如         int v1[]

2014-10-29 10:38:14 1839

转载 C语言字符串,字符转数字,数字转字符

在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串。字符串是以“\0”作为结束符。C/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数。  ● 字符串输出函数puts。  ● 字符串输出函数gets。  ● 字符串连接函数strcat。  ● 字符串复制函数strcpy。  ● 测字符串长度函数strlen。字符串是面试的

2014-10-28 16:45:22 988

转载 常见的C语言笔试题

#includeusing namespace std;int main(){    int array[3]={1,2,3};    cout    cout    return 0;}输出的结果相差2。这是为什么?

2014-10-22 17:42:20 1017

原创 数组名和数组首地址

一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。指针变量既然可以指向变量,当然也可以指向数组和数组元素(把数据起始地址或某一元素的地址放到一个指针变量中)。所谓数组的指针是指数组的起始地址,数组元素的指针数组元素的地址。    这种指针变量的定义与以前介绍的指向变量的指针变量相同。应当注意,如果数组为int型,则指针变量亦应指向int型。

2014-10-22 16:44:09 5168

原创 git merge错误:“No commit specified and merge.defaultToUpstream not set”

问题:$ git fetch$ git mergeNow I get the error:fatal: No commit specified and merge.defaultToUpstream not set.

2014-10-20 22:45:55 4853

转载 C语言结构体里的成员数组和指针

单看这文章的标题,你可能会觉得好像没什么意思。你先别下这个结论,相信这篇文章会对你理解C语言有帮助。这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接。微博截图如下。我觉得好多人对这段代码的理解还不够深入,所以写下了这篇文章。为了方便你把代码copy过去编译和调试,我把代码列在下面:123456

2014-10-19 17:32:46 891

转载 C语言malloc和free

在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用—— 就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以 写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有一点帮助

2014-10-18 23:55:24 920

转载 一个exe可执行程序的生与死

写在前面:最近在研究一个VC界面库DuiLib,在细读它的源码时遇到些问题,比如它的界面是如何绘制上去的,底层操作是如何实现的,就是CreateWindow和ShowWindow又是如何实现的, 也不得而知, 因此我想有必要重新认识下Win32应用程序的启动/运行原理才好。如题所述, 本文讲的的Windows环境下exe可执行文件的运行原理, 这里面涉及的知识很多,需要读者

2014-10-17 23:41:56 1409

转载 指针做形参做局部变量以及内存分配

一级指针做形参:首先一定要明白形参和你传递参数的那个实参是两个不同的变量,即使同名也还依然不同。指针传递的是一个变量或者一个值的地址,但是它本身还是采用值传递的方式。即你不能使它指向另外一块地址,但是你可以改变它指向的空间里存的值。二级指针做形参:二级指针也是传值,但是他指向的地址是个一维指针,所以可以改变二维指针指向的地址空间里的内容也就是要申请空间的一维指针,不能改变二维指针本身的值,

2014-10-14 17:19:06 546

转载 C语言 ## __VA_ARGS__ 宏

在GNU C中,宏可以接受可变数目的参数,就象函数一样,例如: 12#define pr_debug(fmt,arg...) \ printk(KERN_DEBUG fmt, ##arg)用可变参数宏(variadic macros)传递可变参数表 你可能很熟悉在函数中使用可变参

2014-10-12 20:10:32 696

转载 调试常用的 __FILE__, __FUNCTION__, __LINE__

仅仅为了获取函数名,就在函数体中嵌入硬编码的字符串,这种方法单调乏味还易导致错误,不如看一下怎样使用新的C99特性,在程序运行时获取函数名吧。   对象反射库、调试工具及代码分析器,经常会需要在运行时访问函数的名称,直到不久前,唯一能完成此项任务并且可移植的方法,是手工在函数体内嵌入一个带有该函数名的硬编码字符串,不必说,这种方法非常单调无奇,并且容易导致错误。本文将要演示怎样使用新的C9

2014-10-12 19:26:11 519

转载 memset函数详细说明

1。void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。2。例子#includevoid main(){char *s="Golden Global View";clrscr();memset(s,'G',6);printf("%s",s);getchar()

2014-10-10 14:52:51 790

转载 什么是根文件系统(rootfs=Root Fils System)

Linux系统中的根文件系统,Root FileSystem,简称为rootfs; 关于rootfs,之前一直很迷惑,不知道所要表达的真正的含义;即便是通过buildroot自己建立了相关的rootfs之后,还是没能很明白的理解,到底rootfs是啥。 现在,突然,有那么一点明白了。rootfs,其实就是,针对特定的操作系统的架构,一种实现的形式;

2014-10-09 21:02:06 3734

转载 Linux系统cp: omitting directory `XXX'问题解决

在linux系统中复制文件夹时提示如下:Shell代码  cp: omitting directory `foldera/'  其中foldera是我要复制的文件夹名,出现该警告的原因是因为foldera目录下还存在目录,所以不能直接拷贝。 解决办法:使用递归拷贝,在cp命令后面加上-r参数,形如:

2014-10-09 19:47:46 1154

转载 进程与线程的区别 进程的通信方式 线程的通信方式

进程与线程的区别: 通俗的解释一个系统运行着很多进程,可以比喻为一条马路上有很多马车不同的进程可以理解为不同的马车而同一辆马车可以有很多匹马来拉----这些马就是线程假设道路的宽度恰好可以通过一辆马车道路可以认为是临界资源那么马车成为分配资源的最小单位(进程)而同一个马车被很多匹马驱动(线程)----即最小的运行单位每

2014-10-09 10:05:02 549

转载 编译时候如何配置连接库的搜索路径

交叉编译的时候不能使用本地(i686机器,即PC机器,研发机器)机器上的库,但是在做编译链接的时候默认的是使用本地库,即/usr/lib,/lib两个目录。因此,在交叉编译的时候,要采取一些方法使得在编译链接的时候找到需要的库。 首先,要知道:编译的时候只需要头文档,真正实际的库文档在链接的时候用到。 (这是我的理解,假如有不对的地方,敬请网上各位大侠指教) 然后,讲讲如何在交叉编译链接的时候

2014-10-08 22:57:54 2754

转载 如何调试makefile变量

六、七年前写过一篇《跟我一起写Makefile》,直到今天,还有一些朋友问我一些Makefile的问题,老实说,我有一段时间没有用Makefile了,生疏了。回顾,这几年来大家问题我的问题,其实很多时候是makefile的调试问题。所以,就像我在之前的那篇关于GDB的技巧的文章中做的一样,在这里向大家介绍一个小小的调试变量的技巧。相信一定对你有用。对于Makefile中的各种变量,可能是我

2014-10-05 17:37:26 537

转载 如何调试makefile

makefile 的调试有点像魔法。可惜,并不存在makefile 调试器之类的东西可用来查看特定规则是如何被求值的,或某个变量是如何被扩展的。相反,大部分的调试过程只是在执行输出的动作以及查看makefile。事实上,GNU make 提供了若干可以协助调试的内置函数以及命令行选项。用来调试makefile 的一个最好方法就是加入调试挂钩以及使用具保护的编程技术,让你能够在事情出

2014-10-05 17:26:36 574

LTE—UMTS长期演进理论与实践

LTE方面最权威的著作,系统、深入、全面地介绍了LTE的背景、动因和技术内容,涵盖了基本理论基础、物理层技术设计、网络协议架构以及系统部署和性能分析等方方面面。

2011-11-17

M进制的MQAM调制的matlab仿真程序

M进制的MQAM调制的matlab仿真程序,很全,很详细

2011-05-24

ASK BPSK QPSK调制等的matlab仿真程序

ASK BPSK QPSK调制等的matlab仿真程序,很全,运行速度快

2011-05-24

LDPC的matlab 仿真 BP算法 BPSK调制

LDPC仿真,matlab BP算法 LDPC的matlab 仿真 BP算法 BPSK调制

2011-05-24

LDPC编译码 matlab快速仿真,BP算法

LDPC编译码 matlab快速仿真,BP算法

2011-05-08

LDPC编译码 matlab仿真,BP算法

LDPC编译码 matlab仿真,BP算法

2011-05-08

LDPC编译码 matlab仿真,BPSK调制

LDPC编译码,matlab仿真,BPSK调制

2011-05-08

EDA技术实用教程(第三版)答案

用74283 加法器和逻辑门设计实现一位8421BCD 码加法器电路,输入输出均是BCD 码,CI 为 低位的进位信号,CO 为高位的进位信号,输入为两个1 位十进制数A,输出用S 表示。 解:如果二进制的和大于9,需要再加上6 来补成BCD 码

2010-05-24

通信原理笔记卡萨科技

通信原理笔记北邮的发声空间发生会计拉斯加开了卢卡斯的

2010-04-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除