
C/C++
流水mpc
这个人不是特别懒,不过他什么也没说。
展开
-
一则C语言题
今天在网上看到一道C语言题: char a[2][2][3]={ { {1,6,3}, {5,4,15} }, { {3,5,33}, {23,12,7} } }; for(i = 0; i < 12; i++)原创 2016-03-26 15:01:08 · 537 阅读 · 0 评论 -
Linux内存点滴 用户进程内存空间
经常使用top命令了解进程信息,其中包括内存方面的信息。命令top帮助文档是这么解释各个字段的。 VIRT, Virtual Image (kb) RES, Resident size (kb) SHR, Shared Mem size (kb) %MEM, Memory usage(kb) SWAP, Swapped size (kb)转载 2013-10-29 12:20:26 · 662 阅读 · 0 评论 -
使用mipsel-linux-gcc时出现No such file or directory (解决)
将包含的/bin目录导出环境变量,放到~/.bashrc内:vim ~/.bashrc添加:export PATH=$PATH:/home/xx/new_code/mips````/bin退出终端再次进入后,编译出现No such file or directory 解决方法--------------------------------------------------原创 2014-03-13 17:22:13 · 5321 阅读 · 0 评论 -
Linux数据类型大小--->int,char,long int,long long int
今天犯了一个错误!使用的Ubuntu12.04为64位机,结果编程时使用long表示32位,一直错误,后来发现long应该占64位。看到以下文章才察觉。在Linux操作系统下使用GCC进行编程,目前一般的处理器为32位字宽,下面是/usr/include/limit.h文件对Linux下数据类型的限制及存储字节大小的说明。 /* We don't have #include_转载 2014-03-14 12:59:52 · 941 阅读 · 0 评论 -
二维数组名做参数传递问题
在用二维数组名作为参数传递时容易出现Segmention Error。这是因为不能正确为二维数组中元素寻址的问题,正确的方法如下:1. 用指向一维数组的指针变量,如下例子所示:[cpp] view plaincopyprint?#include #include #define N 4 void testArr(int (*a)[N], int转载 2014-03-18 15:30:48 · 586 阅读 · 0 评论 -
linux下gcc编译静态库和动态库
UNIX系统开发-静态库和动态库的建立UNIX系统及各种软件包为开发人员提供了大量的库文件。但一般情况下这些库文件还不能足以满足用户的所有需求。开发人员大多会根据他们自己的开发、研究要求编写出许多函数。对于这些函数,如果都用在命令行中指定源文件的方法同调用它们的的程序链接起来,虽然也是可以的,但也有一些缺点:对每一个调用了这些函数的程序,在编译时都需要将这些函数的代码分别重新编译,这实际是原创 2014-11-05 20:12:24 · 749 阅读 · 0 评论 -
内存中堆和栈
一.预备知识——程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、 栈区(stack)——由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构的栈。由高地址向低地址分配。2、 堆区(heap)——一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。由低地址向高地址分配。注意它与数据结构中的堆是两回事,分配方式类似于链表。?转载 2013-03-30 21:09:34 · 558 阅读 · 0 评论 -
qtopia-2.2.0的交叉编译以及移植Ⅱ(在Fedora下构建嵌入式QT环境)
交叉编译qtopia-2.2.0(2.2.0版本里面集成了qt\tmake\qtopia)解压qtopia-free-src-2.2.0.tar.gz,将其mv qtopia-free-2.2.0 到/root/host /qtopia-free-2.2.0 cd /root/host/qtopia-free-2.2.0 ./configure ma转载 2013-04-02 15:39:06 · 620 阅读 · 0 评论 -
[转载]sockaddr与sockaddr_in
struct sockaddr { unsigned short sa_family; char sa_data[14]; };此数据结构用做bind、connect、recvfrom、sendto等函数的参数,指明地址信息。但一般编程中并不直接针对此数据结构操作,而是使用另一个与sockaddr等价的数据结构sockaddr_in(在netinet/转载 2013-05-18 01:17:05 · 377 阅读 · 0 评论 -
消灭编译警告(Warning)
如何看待编译警告 当编译程序发现程序中某个地方有疑问,可能有问题时就会给出一个警告信息。警告信息可能意味着程序中隐含的大错误,也可能确实没有问题。对于警告的正确处理方式应该是:尽可能地消除之。对于编译程序给出的每个警告都应该仔细分析,看看是否真的有问题。只有那些确实无问题的警告才能放下不管。说明:由于编译的警告各种各样,根本不可以一一罗列出来,下面只是列举出比较典型的一些警告,还有一些转载 2014-08-01 21:04:57 · 750 阅读 · 0 评论 -
undefined reference问题总结
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1. 链接时缺失了相关目标文件(转载 2015-02-06 15:14:25 · 518 阅读 · 0 评论 -
getopt和getopt_long函数
平时在写程序时常常需要对命令行参数进行处理,当命令行参数个数较多时,如果按照顺序一个一个定义参数含义很容易造成混乱,而且如果程序只按顺序处理参数的话,一些“可选参数”的功能将很难实现。在Linux中,我们可以使用getopt、getopt_long、getopt_long_only来对这个问题进行处理。[cpp] view plaincopy转载 2015-01-26 19:38:37 · 337 阅读 · 0 评论 -
2014华为上机题C++编程
转自 : http://blog.youkuaiyun.com/evankaka华为2014校园招聘的机试题目和2013年的完全一样。一、题目描述(60分):通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。要求实现函数:void string转载 2016-03-03 15:48:02 · 478 阅读 · 0 评论 -
socket中的函数遇见EINTR的处理
注:本文转载自 http://blog.chinaunix.net/uid-21501855-id-4490453.html这几天,写服务器代码过程当中,遇见EINRT信号的问题,我是借鉴 《unp 》,采用continue或者goto again循环解决的。但是感觉这个还是很有必要记录一下。网络上查找到的信息很多。下面是我查找到的和EINTR有关的介绍:1 http:转载 2016-01-15 09:57:17 · 286 阅读 · 0 评论 -
C++ 11 auto & decltype
C++ 11中引入的auto主要有两种用途:自动类型推断和返回值占位。auto在C++ 98中的标识临时变量的语义,由于使用极少且多余,在C++ 11中已被删除。 auto自动类型推断,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推断,可以大大简化我们的编程工作。下面是一些使用auto的例子。 auto a; //转载 2015-11-21 16:41:19 · 346 阅读 · 0 评论 -
详解 Arm linux QT 程序开发流程(转)
详解 Arm linux QT 程序开发流程本文介绍的是详解 Arm linux QT 程序开发流程,关于ARM的更多参考资料,末尾有惊喜。先来看内容。详解 Arm linux QT 程序开发流程是本文要介绍的内容,不多废话,先来看内容。我们要开发一个简单的QT程序,然后下载到arm开发板上面。这里需要介绍几个用到的软件:x86-qtopia,这个是PC下的一个qt转载 2013-04-03 19:11:56 · 868 阅读 · 0 评论 -
C++笔试题
C++笔试题 1 #i nclude “filename.h”和#i nclude 的区别? 答:对于#include 编译器从标准库开始搜索filename.h 对于#include “filename.h”编译器从用户工作路径开始搜索filename.h2 头文件的作用是什么?答:一、通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,转载 2013-10-15 18:59:08 · 891 阅读 · 0 评论 -
C语言中的异常处理
一 前言:异常处理,对于做面向对象开发的开发者来说是再熟悉不过了,例如在C#中有try{ ...}catch( Exception e){...}finally{.....}在C++中,我们常常会使用try{}...catch(){}块来进行异常处理。说了那么多,那么到底转载 2013-03-30 21:08:41 · 555 阅读 · 0 评论 -
嵌入式C开发人员的最好的0x10道笔试题
约定:1) 下面的测试题中,认为所有必须的头文件都已经正确的包含了2)数据类型 char 一个字节 1 byte int 两个字节 2 byte (16位系统,认为整型是2个字节) long int 四个字节 4 byte float 四个字节4 byet double 八个字节 8 b转载 2013-06-02 15:54:00 · 871 阅读 · 0 评论 -
__builtin_constant_p
Gcc的内建函数 __builtin_constant_p 用于判断一个值是否为编译时常数,如果参数EXP 的值是常数,函数返回 1,否则返回 0。例如:++++ include/asm-i386/bitops.h249: #define test_bit(nr,addr) /250: (__builtin_constant_p(nr) ? /251: constant_test_转载 2014-07-19 15:35:30 · 1272 阅读 · 0 评论 -
实时嵌入式软件开发的25个常见错误
英文原文由David B. Stewart撰写, 这篇论文对实时嵌入式软件开发的易犯错误做了深入分析,对我们的开发非常有指导意义。 David B. StewartSoftware Engineering for Real-Time Systems LaboratoryDepartment of Electrical and Computer Engineering and In转载 2014-08-01 21:08:40 · 1024 阅读 · 0 评论 -
C语言getopt()函数的使用
getopt(分析命令行参数) 相关函数表头文件 #include定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);函数说明 getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和转载 2015-06-25 11:50:10 · 336 阅读 · 0 评论 -
浅谈C++多态性
C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。 C++多态性是通过虚函数来实现的,虚函数允许子类重新定转载 2014-11-04 14:31:26 · 404 阅读 · 0 评论 -
转 C++面试题
1.static有什么用途?(请至少说明两种) 1)函数体内,声明为static的变量,在函数调用中其值不变。 2) 在同一个文件内(但在函数体外),声明为静态的变量,可被本文件内所有函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。2.引用(转载 2013-09-17 08:31:15 · 810 阅读 · 0 评论 -
C++笔试题
一、选择题1.下面各项不属于派生新类范畴的是(C )A.吸收基类的成员B.改造基类的成员C.删除基类的成员D.添加新成员2.在派生新类的过程中,( D )A.基类的所有成员都被继承B.只有基类的构造函数不被继承C.只有基类的析构函数不被继承D.基类的构造函数和析构函数都不被继承3.下面不属于类的继承方式的是( C )A.publicB.priva转载 2013-09-17 08:18:39 · 1159 阅读 · 0 评论 -
C/C++ 笔试、面试题目大汇总
这些东西有点烦,有点无聊。如果要去C++面试就看看吧。几年前网上搜索的。刚才看到,就整理一下,里面有些被我改了,感觉之前说的不对或不完善。 1.求下面函数的返回值( 微软)int func(x) { int countx =0; while(x) { countx ++; x = x&(x-1); } return countx; }转载 2013-09-16 22:57:42 · 669 阅读 · 0 评论 -
C语言多维数组与多级指针
一、二维数组1、假想中的二维数组布局我们前面讨论过,数组里面可以存任何数据,除了函数。下面就详细讨论讨论数组里面存数组的情况。Excel 表,我相信大家都见过。我们平时就可以把二维数组假想成一个excel表,比如: char a[3][4];2、内存与尺子的对比实际上内存不是表状的,而是线性的。见过尺子吧?尺子和我们的内存非常相似。一般尺子上最小刻度为毫米,而内存的转载 2013-09-04 09:22:05 · 846 阅读 · 2 评论 -
C语言指针与数组之间的恩恩怨怨详解
很多初学者弄不清指针和数组到底有什么样的关系。我现在就告诉你:他们之间没有任何关系!只是他们经常穿着相似的衣服来逗你玩罢了。指针就是指针,指针变量在32 位系统下,永远占4 个byte,其值为某一个内存的地址。指针可以指向任何地方,但是不是任何地方你都能通过这个指针变量访问到。数组就是数组,其大小与元素的类型和个数有关。定义数组时必须指定其元素的类型和个数。数组可以存任何类型的数据,但转载 2013-09-04 09:21:37 · 804 阅读 · 0 评论 -
C语言数组与指针详解
++++++++++++++++++++++++++++++++++++++++++本文系本站原创,欢迎转载! 转载请注明出处:http://blog.youkuaiyun.com/mr_raptor/article/details/6844691++++++++++++++++++++++++++++++++++++++++++ 好多同学都说:“老师转载 2013-09-04 08:52:28 · 702 阅读 · 0 评论 -
C/C++程序员应聘常见面试题剖析
1.引言本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy 函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy 函数吗?我们都觉得自己能,可是我们写出的strcpy 很可能转载 2013-09-07 17:40:23 · 577 阅读 · 0 评论 -
C语言数组中的地址偏移问题
本文讨论在C/C++中,一维数组和二维数组中的地址偏移问题。一维数组 int a[3];二维数组 int a[3][3];1、先看一维数组的情况:[cpp] view plaincopy#include using namespace std; int main() {转载 2013-06-24 23:25:17 · 1564 阅读 · 0 评论 -
2013年谷歌校园招聘笔试(北京)
一:单选题1:使用C语言将一个1G字节的数组从头到尾全部设置为’A’,在一台典型的当代PC上,需要花费的CPU时间的数量级最接近:(B)A 0.001秒 B 1秒 C 100秒 D 2小时2:在某些极端要求性能的场合,我们需要对程序进行优化,关天优化,以下说法正确的是(D)A 将程序整个用汇编语言改写会大大提高程序性能B 在优化前,可以先确定哪部分代码最费时,然后对这部份代转载 2013-06-13 22:37:26 · 785 阅读 · 0 评论 -
C++中的抽象类以及接口的区别联系
上篇文章转载C++之父关于接口在实现中问题的回答后,自己动手写了写。但是由于之前用C#写过一些程序,对abstract关键字理解不够深,结果深受其害,查阅了很多关于虚函数、纯虚函数、抽象类以及接口的实现方面的资料,现将它们之间的联系区别整理一下。一 抽象类和接口抽象类: 抽象类是特殊的类,只是不能被实例化(将定义了纯虚函数的类称为抽象类);除此以外,具有类的其他特性;重要的是抽象类可以包括转载 2013-09-17 08:33:55 · 559 阅读 · 0 评论 -
C++中指向派生类的基类指针、基类引用的一点总结
#include class A{public: void a1(){ std::cout } virtual void vt(){ std::cout }private: void a2(){ std::cout }protected: void a3(){ std::cout } };class转载 2013-09-17 08:42:55 · 2379 阅读 · 0 评论 -
C++关键字new学习
很多新手对C++关键字new可能不是很了解吧,今天我一起来学习一下。 “new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解到的与new有关的内容做一个总结。new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。当然,如果我们创建的是简单类型转载 2014-10-31 14:34:17 · 388 阅读 · 0 评论 -
c++ static变量
1、什么是static? static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。2、为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法转载 2014-11-01 14:15:52 · 475 阅读 · 0 评论 -
数据结构简单要点总结(转)
第三章 栈、队列和数组 一、栈栈是只能在一端进行插入和删除的线性表。(别看只是个定义,非常重要,已经道出了运算方法:只能在一端插入和删除。) 栈的特征:后进先出,先进后出。 插入和删除元素的一端称为栈顶。(说明了我们在栈顶操作)另一端称为栈底。插入元素和删除元素的操作称为入栈和出栈。 1.顺序栈结构:(top总是指向数组最后的元素,比如data[转载 2014-10-24 09:35:38 · 460 阅读 · 0 评论 -
BMP文件格式详解(BMP file format)
BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域的数据,因此成为我们取得RAW数据的重要来源。Windows的图形用户界面(graphical user interfaces)也在它的内建图像子系统GDI中对BMP格式提供了支持。下面转载 2014-08-21 10:18:43 · 561 阅读 · 0 评论 -
57段让编译器崩溃的C语言代码
导读:本文由犹他州大学的计算机系的 John Regehr 整理。虽然我不清楚到底有多少人喜欢看让编译器崩溃的程序,但这篇文章就是给这些的人(包括我)。我们讨论编译器Bug测试案例的论文就包括很多这种崩溃型的Bug。下文是就是这些 C 语言代码段,由工具逐字输出,代码格式上肯定会有些问题。(代码段后面申明了对应被崩溃的编译器,有读者问为什么没有 MSVC 编译器的,Regehr 回复说转载 2013-10-31 07:11:07 · 926 阅读 · 0 评论 -
很酷的C语言技巧
C语言常常让人觉得它所能表达的东西非常有限。它不具有类似第一级函数和模式匹配这样的高级功能。但是C非常简单,并且仍然有一些非常有用的语法技巧和功能,只是没有多少人知道罢了。指定的初始化很多人都知道像这样来静态地初始化数组:1int fibs[] = {1, 1, 2, 3, 5};C99标准实际上支转载 2013-10-31 07:09:09 · 577 阅读 · 0 评论