Qt学习之路(2):Hello, world!

任何编程技术的学习第一课基本上都会是Hello, world!,我也不想故意打破这个惯例——照理说,应该首先回顾一下Qt的历史,不过即使不说这些也并无大碍。 或许有人总想知道,Qt这个单词是什么意思。其实,这并不是一个缩写词,仅仅是因为它的发明者,TrollTech公司的CEO,Haarard Nord和Trolltech公司的总裁Eirik Chambe-Eng在联合发明Qt的时候并没有一个很好的名字。在这里,字...

作者: siriurs28 发布时间: 12-02

可变参数处理--源码及分析

/*不定个数参数输入处理*/ #include <stdio.h> #include <stdarg.h> #include <string.h> int cmd(char *format,...); int main(int argc,char* argv[]) { cmd("%s,%s,%s,%s","hello","no","world","va_list"); } int cmd(char *format,...) //形参保存在栈中,这里的形参都是字符串,栈中保存的只是各个字符串的首地址,在 { //本例中栈中保存了format的首地址和4个字符串...

作者: bluesky2254 发布时间: 12-02

通过map 查找 调用类的成员函数

在上一篇,我转载了《C++中指向类成员的指针》, 这是本篇的内容是本篇的基础。 本片文章主要是用实例说明怎样通过map来调用类的成员函数。 场景: 比如说我想通过输入不同的 字符串 然后调用不同的函数来处理。 我想这类应用非常多吧。 而却大部分c++程序员的解决方案是 string stInput; if (stInput == "aaa") { // call A function, do something. } else if (stInput ==...

作者: wumao2 发布时间: 12-02

C语言中的数据对齐问题

之前看过一些文章写的对齐的原理或者说是方式,有的不尽完备,有的根本是以偏盖全,没有揭露数据对齐问题的实质。本人经过多次测试及搜索相关资料,总结出数据对齐问题的两个判断原则跟大家分享。文中有很多表述不够专业,请见谅。 一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。 例一: #include <iostream> using namespace std; struct X ...

作者: landuochong 发布时间: 12-02

数据结构与算法分析--学习笔记(3)

链表的可以应用于多项式的表示,我本想使用一个指针链表来实现大数的存储,但是发现进行乘法运算很麻烦。我想起以前的一个题,是求100!的值,于是我心血来潮写一个99!的阶乘出来算了,实际上,要写几百的阶乘也可以,但是毕竟只作为一个算法,就记载下来吧。 #include "stdio.h" void Multi( int MultiNum, int * Num ){ //Num被乘数 ,MultiNum为乘数 int i; int Degree = ...

作者: controlqsw 发布时间: 12-01

strcpy用法小结

库函数strcpy其实有几个漏洞 1.传入的指针没有非空判断 代码: char a[]="hello"; strcpy(a,NULL); 编译和运行:编译通过,运行段错误 [root@fedora7 code]# gcc test.c -o test [root@fedora7 code]# ./test Segmentation fault 2.没有检查两个字符串是否以NULL(即'\0')结尾 代码1: char b[10]="1234567890"; //注意这里的字符串已经越界了 strcpy(b,'a'); //这里的2个字...

作者: bluesky2254 发布时间: 12-01

一个C++编译错误

最近遇到几次这个错误,下一次总是忘记,还要东找西找,也没时间深入看,先记下来,备忘: aggregate 'std::stringstream oss' has incomplete type and cannot be defined 用 include <sstream> 来解决。

作者: 唐吉诃德猫 发布时间: 12-01

linux下file-operations结构体

File_operations结构体 file_operation就是把系统调用和驱动程序关联起来的关键数据结构。这个结构的每一个成员都对应着一个系统调用。读取file_operation中相应的函数指针,接着把控制权转交给函数,从而完成了Linux设备驱动程序的工作。 在系统内部,I/O设备的存取操作通过特定的入口点来进行,而这组特定的入口点恰恰是由设备驱动程序提供的。通常这组设备驱动程序接口是...

作者: hpu330 发布时间: 11-30

动态内存分配之11.1

/* * 请你自己尝试编写 calloc 函数,函数内部使用 malloc 函数来获取内存。 */ /* A function than performs the same job as the library 'calloc' function */ #include <stdlib.h> #include <stdio.h> void *calloc( size_t n_elements, size_t element_size ) { char *new_memory; n_elements *= element_size; // 获取字节数 //n_elements = n_elements * element_siz...

作者: Mrt-l 发布时间: 11-28

c数组名和指针的区别

请看程序(本文程序在WIN32平台下编译): 1. #include <iostream.h> 2. int main(int argc, char* argv[]) 3. { 4. char str[10]; 5. char *pStr = str; 6. cout << sizeof(str) << endl; 7. cout << sizeof(pStr) << endl; 8. return 0; 9. } 1、数组名不是指针 我们先来推翻"数组名就是指针"的说法,用反证法。 证明 数组名不是指针 假设:数组名是指针; 则:pStr和str...

作者: xylxz 发布时间: 11-27