C/C++
IT山IT水
当你的能力没法实现自己的抱负时,请学习
展开
-
virtual public 含义
http://blog.csdn.net/kkk328/article/details/7081215在类重载中我们一般使用以下的方式: class Base { void Echo() { printf( "Echo from Base ");} }; class Middle : public Ba转载 2017-05-28 09:34:53 · 1375 阅读 · 0 评论 -
C/C++拾遗——endl功能
我们在C++的标准输入输出中经常用到endl,它 是一个特殊值,称为操纵符,将它写入输出流时,具有输出换行的效果,并刷新与设备相关的缓冲区(buffer),用户可以立即看到写入到流中的输出。 程序员经常在调试程序过程中插入输出语句,这些语句都应该刷新输出流。忘记刷新输出流可能会造成输出停留在缓冲区中,如果程序崩溃,将会导致程序崩溃位置的错推断。原创 2012-03-24 11:21:00 · 868 阅读 · 0 评论 -
C/C++拾遗——查看程序执行后的状态
main函数返回其值,表示程序的执行完毕。访问main函数的返回值的方式与系统有关。不论Windows系统还是Linux系统,执行程序后必须发出一个适当的echo命令。Linux系统中通常键入如下命令获取状态: $echo $? 要在Windows下查看状态,键入 C:\directory> echo %ERRORLEVEL%原创 2012-03-24 10:40:03 · 1156 阅读 · 0 评论 -
Linux Shell命令的C语言实现
在此记录一些关于Linux Shell命令的C语言实现的函数和实例 :原创 2013-10-31 20:49:26 · 1639 阅读 · 0 评论 -
深度理解C/C++的绝佳资料
在网上看到一个非常好的C/C++复习资料,有很多细节性的知识点,是绝佳的资料,在此给共享大家。原创 2013-10-31 20:50:16 · 1346 阅读 · 0 评论 -
c 函数滚动复习记录
2013/8/2strdup(字符串复制,自动为新字符串分配内存)toupper(字符小写 to 大写)原创 2013-08-02 11:41:46 · 1077 阅读 · 0 评论 -
Effictive C++學習(一)——概念問題
不明確行為(undefined behavior):C++中未定義,無法預期運行時會發生什麽狀況。比如,讀取空指針的值,數組訪問超出範圍等等。原创 2013-11-12 11:37:14 · 854 阅读 · 0 评论 -
收录一个拷贝文件的经典例子
#include #include #include #include #include #include #include #define BUFFER_SIZE 1024int main(int argc, char** argv,char** envpv){ int from_fd, to_fd; int bytes_read, bytes_write;原创 2013-07-31 10:40:03 · 1001 阅读 · 0 评论 -
关于perf的记录(一)————內核鏈表
perf中有個重要的數據結構,就是紅黑樹,其在linux內核中的遍歷方式比較特殊,在此做部份記錄: list_head 的定义(include/linux/types.h):/**************************************** * list_head结构包含两个指向list_head结构的指针prev和next, * 由此可见,内核的链表具备双链表原创 2013-09-23 09:43:18 · 923 阅读 · 0 评论 -
删除char*变量前后的空格
删除char*变量前后的空格 /*Delete the blank that is in char* varible* * TODO Robin*/#include #include #include char* eat_sp_mcw(char *src){ /* char * ori = strdup(src); char * des =原创 2013-09-18 15:21:29 · 2032 阅读 · 0 评论 -
C/C++拾遗——main函数
在大多数系统中,main函数的返回值是一个状态指示器。返回0往往表示main函数成功执行完毕。任何其他非零的返回值都有操作系统定义的含义。通常非零返回值表明有错误出现。每种操作系统都有自己的方式告诉用户main函数返回什么内容。 简单的说,返回0表示程序正确执行; 返回非0表示程序有错误,查看系统手册寻找对应返回值的原创 2012-03-24 10:18:40 · 685 阅读 · 0 评论 -
C/C++拾遗————空指针{NULL/0/(void*)0}与 空字符{null/'0'} 区别
突然对NULL与null的区别有点疑惑,在网上搜索了一下,查到下面的用法。其实很简单,就如博文标题,空指针可以是NULL,0或者(void*)0,空字符可以是null或者‘0’表示。翻译 2013-12-31 15:51:40 · 1664 阅读 · 0 评论 -
Qt获得焦点和失去焦点处理事件 (Focus事件)
转载自: http://www.cnblogs.com/hicjiajia/archive/2012/05/30/2526776.html方法一:描述:一开始我要实现的目的就是,在一个窗体上有多个可编辑控件(比如QLineEdit、QTextEdit等),当哪个控件获得焦点,哪个控件的背景就高亮用来起提示作用,查了下文档应该用focusInEvent()和focus转载 2017-05-26 19:23:26 · 6162 阅读 · 0 评论 -
编译器对变量的内存分配方式 收藏
问题来源:高人指点啊!!!!<br />假如:定义int a=4;<br />要不要把a和4都存放到内存呢??? <br />深圳小小(812890249) 20:52:14 <br />“要不要”是什么意思? <br />亮剑<custliuyalong@qq.com> 20:52:30 <br />是不是 <br />深圳小小(812890249) 20:52:44 <br />a不会吧 <br />亮剑<custliuyalong@qq.com> 20:52:47 <br />是不是把a和4都存放到原创 2011-05-10 23:51:00 · 1155 阅读 · 0 评论 -
C语言宏定义##连接符和#符的使用
转自:目录(?)[-]C语言宏定义连接符和符的使用 关于和关于的使用错误的嵌套Misnesting由操作符优先级引起的问题Operator Precedence Problem消除多余的分号Semicolon SwallowingDuplication of Side EffectsC语言宏定义##连接符和#符的使用 C语言中如何使用宏C(和C+转载 2014-08-29 16:17:44 · 859 阅读 · 0 评论 -
gdb调试技巧(二)———— gdb 条件断点
本文由博主原创,转载请注明出处(保留此处和链接):IT人生(http://blog.csdn.net/robinblog/article/details/17652541)GDB是linux上的调试利器,是我们每个基于linux系统编程coder必须掌握的一门技术。在此记录一个使用gdb条件断点的小例子:gdb条件调试一般应用在循环、链表的遍历、或者其他变量的值可能被多次改变的场合。先上一个例子:gdb条件断点一般应用在循环、链表的遍历、或者其他原创 2013-12-29 12:24:54 · 32669 阅读 · 0 评论 -
gdb调试技巧(一)———— gdb 调试带参可执行
GDB是linux上的调试利器,是我们每个基于linux系统编程coder必须掌握的一门技术。在此记录一个使用gdb调试带参可执行程序的小例子: 源码test.c:#include #include int main(int argc,char * argv[]){ if(argc<2){ printf("Usage:%s para\n",argv[0]); return 1; }else{ p原创 2013-04-20 09:22:10 · 2617 阅读 · 0 评论 -
linux下,动态库和静态库的编译方法(实例说明)
示例源码:robin@ubuntu:~/workspace/c_workspace/dynamic_static$ cat hello.c #include helloMCW(){ printf("Hello MCW!!!!!\n");}robin@ubuntu:~/workspace/c_workspace/dynamic_static$ cat main.c #原创 2013-06-21 11:07:41 · 1148 阅读 · 0 评论 -
c/c++中内存布局问题
本文由博主原创,转载请注明出处(保留此处和链接):IT 人生 (http://blog.csdn.net/ningxialieri/article/details/8847192) 什么也不说了,直接上一个实例。用实例说明,在一个结构体中,由于变量成员先后定义的位置不同,而导致结构体所占的内存大小不同。 究其原因,是由硬件引起的,如果是3原创 2013-04-24 22:56:42 · 1227 阅读 · 0 评论 -
关于sqlite3在linux系统的应用
一次偶然的机会,用到了sqlite3开源数据库。当时要自己重新编译,获取源码过程有点纠结,现在在此做个记录,以备后用,也希望能帮助大家。 第一步:源码获取 链接一: sqlite3官网获取 链接二: 在官网上选择 Source Code——>sqlite-amalgamation-3080002.zip(后面的数字会因版本更新有所不同)原创 2013-12-12 21:46:03 · 2069 阅读 · 0 评论 -
函数的错误应用导致的致命错误(一)——strcpy
对一个coder来说,记录一些自己所遇到的错误及解决方法是很重要的,写此系列博文,以备后用,也希望对大家有所帮助。下面是我在调试一个程序是碰到的错误:错误log:F/libc ( 7081): @@@ ABORTING: invalid address or address of corrupt block 0x736ab1a8 passed to dlfree F/原创 2013-12-26 11:43:23 · 24762 阅读 · 1 评论 -
输出结构体中所有成员变量的值到文件
输出结构体中,所有成员变量的值到文件之中的小例子 #include #include #include #include #include struct st{ float f; char * a; char * b; char * c;};struct st st_var;int main(){ st_var.原创 2013-09-18 15:11:51 · 4435 阅读 · 0 评论 -
pthread系列函数实例学习(一)
源码:robin@ubuntu:~/workspace/c_workspace/pthread$ cat thread.c/************************************************* * pthread_create() pthread_join() 实例 * * *************************************原创 2013-08-08 15:28:05 · 1267 阅读 · 0 评论 -
BSS段,数据段,代码段,堆内存和栈 研究
最近公司在做编译器,要狂补内存分配知识,在网上查找了一部分资料,现在收录于此。一切版权都属于原作者。哈哈哈!来自:http://hi.baidu.com/%C6%BF%D6%D0%B5%C4%C5%AE%CE%D7/blog/item/5043d08e7410原创 2011-10-14 12:36:12 · 1020 阅读 · 0 评论 -
va_list、va_start、va_arg、va_end的原理与使用
va_list、va_start、va_arg、va_end的原理与使用注:原文来自:http://www.cppblog.com/qiujian5628/archive/2008/01/21/41562.html,本人感到很经典,所以在此收录。一切权利属于原作者。谢谢。转载 2011-10-11 11:30:57 · 843 阅读 · 1 评论 -
C++类模板 之学习
首先声明:非原创! 来自:http://blog.csdn.net/nomad2/article/details/8865031.定义语法:template class 类名 类体注:模板类型参数 typename id模板非类型参数 例如: int转载 2011-08-10 15:00:36 · 476 阅读 · 0 评论 -
可变参 理解
原文来自:http://www.dutor.net/index.php/2011/08/variadic/使用变参 C/C++提供了函数的可变参数(variadic)机制,大部分人写的第一个C程序恐怕就是Hello World吧,使用的应该也是printf(转载 2011-09-02 09:57:24 · 606 阅读 · 0 评论 -
C++标准库vector类型 详细介绍 及示例程序
C++标准库vector类型 <br />1. vector对象可以在运行时高效的添加元素,以下是几种用来定义和初始化vector对象的方法:<br />vector<T> v1; vector保存类型为T的对象,默认构造函数v1为空;<br />vector<T> v2(v1); v2是v1的一个副本;<br />vector<T> v3(n, i); v3包含n个值为i的函数;<br />vector<T>v4(n); v4含有值初始化的元素的n个副本。<br /><br />2. ve原创 2011-05-05 20:35:00 · 1643 阅读 · 0 评论 -
万年历 C++
// Calendar.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#include#includeusing namespace std;int daysOfMonth[31]={0,31,28,31,30,31,30,31,31,30,31,30,31}转载 2011-06-21 14:46:00 · 1389 阅读 · 0 评论 -
#ifndef#define#endif的用法
#ifndef#define#endif的用法<br /> <br /> #ifndef #define #endif的用法 整理:shichenghua<br />http://www.eetop.cn/blog/?56085/action_viewspace_itemid_1145.html<br />(前段时间要到这个,感觉shichenghua整理得不错,所以收藏到此处,若不同意,随时可以撤下<br />谢谢shichenghua)shichenghuaEETOP专业博客---电子工程师自己的家园转载 2011-04-18 20:33:00 · 1240 阅读 · 0 评论 -
存储类(存储模型)总结
<br />最近在复习C语言,做了一些笔记,现在把自认为有价值的与大家共享。<br />版权归原属作者所有~~~~~~~~~~~~~~~<br /> <br /> <br />C语言使用作用域、链接和存储时期来定义5个存储类:自动、寄存器、具有代码块作用的静态、具有外部链接的静态以及具有内部链接的静态。<br /> <br /> <br />自动变量具有代码块作用域、空链接和自动存储时期。他们是局部的,为定义它们的代码块(通常是一个函数)所私有。寄存器变量和自动变量具有相同的属性,但编译器可能使用速度更快的原创 2011-05-26 09:10:00 · 893 阅读 · 0 评论 -
关于 typedef 关键字的用法讲解:
注:本文源自:http://bigwhite.blogbus.com/logs/20147715.html,一切版权属于原作者-----------Tony Bai版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://bigwhite.blogbus.com/logs/20147715.htmlC语言语法简单,但内涵却博大精深;如转载 2011-11-07 17:37:13 · 710 阅读 · 0 评论 -
c语言宏定义技巧
注:本文转自:http://www.diybl.com/course/6_system/linux/Linuxjs/2008831/139114.html1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的转载 2012-01-08 09:50:25 · 563 阅读 · 0 评论 -
getopt 實例
在學習pthread相關的函數時用到了getopt(),記得以前在在開源項目中也用到了,再次做個記錄,該例子來在於man 3 getopt 。用來獲取命令行的選項和參數,是個很好的例子:robin@ubuntu:~/workspace/c_workspace/thread$ cat opt.c#include #include #include int mai原创 2013-08-08 21:46:23 · 881 阅读 · 0 评论 -
strdup tolower toupper 实例
源码:robin@ubuntu:~/workspace/c_workspace$ cat lowerToUp.c/**************************************************** * strdup() toupper() tolower() 实例 * Robin * *****************************原创 2013-08-08 14:36:48 · 925 阅读 · 0 评论 -
输出linux系统的所有环境变量实例
输出linux系统的所有环境变量实例:#include #include #include #include #include int main(int argc, char **argv, char **env){ printf("Hello!!!!!!!!!!!!!!!!!!!!!!\n"); int i=0; int fd = open("e原创 2013-07-26 13:58:12 · 2685 阅读 · 0 评论 -
使用c语言设置linux系统环境变量实例
使用c语言设置linux系统环境变量实例#include int main(){// setenv("QEMU_SO", "/home/robin", 0);// system("ls -l");// system("LINA=/home/robin");// system("echo $LINA" ); char * path = geten原创 2013-07-26 14:58:31 · 3386 阅读 · 0 评论 -
so编译方法
声明,原文来自:http://blog.sina.com.cn/s/blog_6f3d37ff0100zebt.html gcc test_a.c test_b.c test_c.c --share -o libtest.sogcc test.c -L. -ltest -o test.exe 动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章转载 2013-06-13 09:29:26 · 1529 阅读 · 0 评论 -
可变参的使用 va_list va_start va_end
本文由博主原创,转载请注明出处(保留此处和链接):IT人生(http://blog.csdn.net/ningxialieri/article/details/8981127) 最近在看glib相关的东西,想玩玩可变参,来定义一个自己的printf函数,在此做个小记录: 文件robin_printf.c$ cat robin_printf.c #incl原创 2013-05-27 18:18:18 · 1413 阅读 · 0 评论 -
键盘键值ASCII码对照表(十进制和十六进制)
完整的8位ASCII字符表ASCII, American Standard Code for Information Interchange 念起来像是 “阿斯key”,定义从 0 到 127 的一百二十八个数字所代表的英文字母或一样的结果与意义。由于只使用7个位元(bit)就可以表示从0到127的数字,大部分的电脑都使用8个位元来存取 字元集(character set),所以从128到25转载 2010-01-20 16:19:00 · 18067 阅读 · 0 评论