C/C++
hubi
每天收获多一点。
展开
-
C学习网站
http://www.gribblelab.org/CBootcamp/index.html转载 2016-11-20 23:27:58 · 679 阅读 · 0 评论 -
数据结构链表小程序
#include "stdio.h"#include "stdlib.h"struct list{ int num; struct list *next;};typedef struct list node;typedef node *link;link createlist(i原创 2011-07-21 10:12:54 · 621 阅读 · 0 评论 -
链表向后插入
#include "stdio.h"#include "stdlib.h"struct list{ int num; struct list *next;};typedef struct list node;typedef node *link;link createlist(i原创 2011-07-21 13:49:32 · 735 阅读 · 0 评论 -
链表的反转
#include "stdio.h"#include "stdlib.h"struct list { int num; struct list *next;};typedef struct list node;typedef node *link;link createlist(原创 2011-07-26 16:08:54 · 633 阅读 · 0 评论 -
随机取扑克牌中10张牌
#include "stdio.h"#include "stdlib.h"#include "time.h"#define MaxStack 100int stack[MaxStack];int top = -1;int push(int value){ if (top>=Max原创 2011-07-27 10:30:49 · 2038 阅读 · 0 评论 -
栈的压入和取出
#include "stdio.h"#include "stdlib.h"struct stack_node{ int num; struct stack_node *next;};typedef struct stack_node stack_list;typedef stac原创 2011-07-27 14:39:35 · 574 阅读 · 0 评论 -
ungetc
ungetc是将读出的数据再次放回到缓冲区去,下一次读数据时,会再次读出来的。不过如果把读出的数据放回到缓冲区去后,没有将缓冲区的数据读出来 就再次试图把读出的数据放回到缓冲区去---数据是放不进去的 (可以把缓冲区看做一个可变化的容器,当你把试图用ungetc()函数把读出的数据放回到缓冲区,缓冲区这个容器就为这些数据分配相应的大小空间,之后这个空间是不变的,直到你把缓冲区的数据读出去,所以转载 2011-10-23 00:32:50 · 8160 阅读 · 0 评论 -
字符串排序
/* 字符串指针排序函数 */void stsrt (char *strings[], int num){ char *temp; int top, seek; for (top = 0; top for (seek = top + 1; seek if (s原创 2011-12-14 19:48:16 · 761 阅读 · 0 评论 -
指针数组、二重指针、const、sizeof、strlen
#include #include int main(void){ const char **p; char *msg[] = { "abc", "bcd", "cdfgh" }; p = msg; *p = "hello";//说明可以改变msg的值; p = 0x12ff6c;//地址也能改; //**p = 'h';内容不能改; *p = "world"; prin原创 2012-06-28 18:46:49 · 1578 阅读 · 0 评论 -
简单字符串排序(冒泡法)
#include #include void AlphaSort(char name[][12], int size){ int i,j; char tmp[20]; for(i = 0; i < size; i++) for(j = 0; j < size-1-i; j++) { if(strcmp(name[j], name[j+1]) > 0) {原创 2012-09-25 13:43:09 · 3340 阅读 · 0 评论 -
Assert
/* assert example */#include #include void print_number(int* myInt) { assert (myInt!=NULL); printf ("%d\n",*myInt);}int main (){ int a=10; int * b = NULL; int * c = NULL; b=&a;转载 2012-08-23 13:02:56 · 502 阅读 · 0 评论 -
Linux下gcc编译生成动态链接库*.so文件并调用它
http://blog.sina.com.cn/s/blog_54f82cc20101153x.html转载 2017-02-08 09:40:17 · 905 阅读 · 0 评论 -
__attribute__
__attribute__((unused)) 表示该函数或变量可能不使用,避免编译器产生告警信息。__attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。转载 2016-11-24 15:23:22 · 295 阅读 · 0 评论 -
拷贝构造函数、explicit关键字
http://baike.baidu.com/view/1266959.htmhttp://blog.csdn.net/fornormandy/article/details/79512 #include #include using namespace std;class C{public: int i;//explicit C(const转载 2013-04-11 20:51:19 · 1094 阅读 · 0 评论 -
Linux 时钟(微妙,纳秒)
time_us.c#include #include #include #include int time_substract(struct timeval *result, struct timeval *begin,struct timeval *end){ if(begin->tv_sec > end->tv_sec) return -1;原创 2016-10-09 18:01:12 · 1212 阅读 · 0 评论 -
OOC 面向对象 C 语言编程实践
http://blog.jobbole.com/105105/转载 2016-08-30 10:21:02 · 1035 阅读 · 0 评论 -
goto编译错误,error: expected ‘;’ before ‘:’ token
int init_flow_spd_upload_que(int threadnum){ int i = 0; flow_spd_stat_que_t *flow_spd_stat_que; for(i = 0; i < threadnum; i++) { flow_spd_stat_que = malloc(sizeof(flow_spd_s原创 2016-06-22 09:24:22 · 1911 阅读 · 0 评论 -
volatile
volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如: volatile int i=10; int j = i; ... int k = i;转载 2016-03-14 21:09:15 · 304 阅读 · 0 评论 -
十六进制和十进制的数值转换
//test.h#ifndef TEST_H#define TEST_H#include #endif//c#include "test.h"void hexToInt(unsigned char * input,unsigned char * output){ // int * output; if ((((*input) & 0x0F) 0x09) ||原创 2012-08-23 00:23:56 · 1117 阅读 · 0 评论 -
栈,堆,全局,文字常量,代码区总结
栈,堆,全局,文字常量,代码区总结 (2012-04-24 14:02)标签: 转载 分类: 标准 C程序设计原文地址:栈,堆,全局,文字常量,代码区总结 作者:g_programming一. 区域划分堆: 是大家共有的空间,分全局堆和局部堆。全局堆就是所有没有分配的空间,局部堆就是用户分配的空间。堆在操作系统对进程初始化的时候分配,运行过程中也可以向系统要额外转载 2012-07-14 09:52:06 · 2007 阅读 · 0 评论 -
new和malloc的区别
new和malloc的区别1. malloc()函数1.1 malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void *malloc(unsigned int num_bytes); 说明:分配长度为num_bytes字节的内存块。如果分配成功则返回指向被分配内存的指针,分配失败返回空指针NULL。当内存不再使用时,应使用fr转载 2012-07-21 19:00:39 · 661 阅读 · 0 评论 -
__attribute__ ((packed)) 的作用
最近在看我们的代码的时候发现声明类型的时候有 __attribute__ ((packed))的结构体类型声明,不知道是什么意思,查了下知道是如下含义:1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows转载 2012-08-10 20:14:13 · 651 阅读 · 0 评论 -
Templates
Function templatesFunction templates are special functions that can operate with generic types. This allows us to create a function template whose functionality can be adapted to more than one typ翻译 2012-08-23 11:44:37 · 1012 阅读 · 0 评论 -
(转)百度百科-iomanip.h
iomanip.h是I/O流控制头文件,就像C里面的格式化输出一样. 在新版本的c++中头文件已经用iomanip取代了iomanip.h。 以下是一些常用的函数: dec 置基数为10 相当于"%d" hex 置基数为16 相当于"%X" oct 置基数为8 相当于"%o" setfill(c) 设填充字符为c转载 2012-08-26 14:22:01 · 1084 阅读 · 0 评论 -
字节对齐
对于标准数据类型,它的地址只要是它的长度的整数倍就行了,而非标准数据类型按下面的原则对齐: 数组 :按照基本数据类型对齐,第一个对齐了后面的自然也就对齐了。 联合 :按其包含的长度最大的数据类型对齐。 结构体: 结构体中每个数据类型都要对齐; 其实字节对齐的细节和具体编译器实现相关,但一般而言,满足三个准则: 1) 结构体变量的首地址能够被其最宽基转载 2012-08-28 00:46:02 · 550 阅读 · 0 评论 -
再谈sizeof
#include #include #include using namespace std;int main(void){ int a[][3] = {{0,1,2},{3,4},{5}};//列数要标明 string strArr[] = {"Trend","Micro","soft"}; char * strArr1[] = {"Trend","Micro","sof原创 2012-08-28 13:13:37 · 733 阅读 · 0 评论 -
complex
public member functioncomplex::complexcomplex (const T& re = T(), const T& im = T());complex (const complex& cmplx);template complex (const complex& cmplx);Complex number constructor转载 2012-08-28 13:52:44 · 609 阅读 · 0 评论 -
C语言中变量定义与声明的区别
C语言中变量定义与声明的区别(转载) (2012-04-16 21:13)标签: 定义 声明 存储 definition defining C语言 分类: linux C程序设计 在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的转载 2012-07-14 10:15:48 · 794 阅读 · 0 评论 -
malloc
/*implement 1*/void getmemory(int *ptr,int size){ ptr = (int *)malloc(sizeof(int)*size);}/*implement 2*/int * getmemory(int size){ int *temp = (int *)malloc(sizeof(int)*size); if(temp原创 2012-08-28 16:00:50 · 617 阅读 · 0 评论 -
namespace
一 :和是不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。 后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。 因此,当使用时,相当于在c中调用库函转载 2013-04-05 15:08:58 · 741 阅读 · 0 评论 -
(转)百度百科-const
const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。另外CONST在其他编程语言中也有出现,如C++、PHP5、C#.net、HC08 C。 C中CONST的使用: 虽然这听起来很简单,但实际上,cons转载 2012-08-26 13:52:38 · 696 阅读 · 0 评论 -
浮点数存储小例子
#include #include #include //#include using namespace std;int main(void){ float a = 1.0f; cout << (int)a << endl; cout << &a << endl; cout << (int&)a << endl;原创 2012-08-25 16:00:14 · 949 阅读 · 0 评论 -
#pragma pack(n)
在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。例如,下面的结构各成员空间分配情况:struct test转载 2012-08-10 20:21:34 · 1019 阅读 · 0 评论 -
rand-取小于一个定值M以内,N个不重复的数(M>=N)
//rand.h#ifndef RAND_H#define RNAD_H#include #include #include #endif//rand.c#include "rand.h"int * randToArray(int array[], int len, int value){ int i; int random,tmp; for(i =原创 2012-08-22 22:52:28 · 1990 阅读 · 0 评论 -
Overload operator plus (=)
#include class MyType{public: MyType(); int GetAge() const { return *itsAge; } int GetWeight() const { return *itsWeight; } void SetAge(int age) { *itsAge = age; } MyType operator=(const MyT转载 2012-08-23 12:51:19 · 661 阅读 · 0 评论 -
(转) 虚函数表放在哪里?
转自:http://blog.csdn.net/houdy/article/details/1496161http://blog.csdn.net/neiloid/article/details/6934135引言:近日CSDN的"C/C++语言"版的一个问题引起了我的注意:"请问虚函数表放在哪里?"。我也曾经思考过这个问题,零零散散也有一定的收获,这次正好趁这个机会把我对这一部分的理转载 2012-08-23 14:30:36 · 679 阅读 · 0 评论 -
(转)C++中抽象类和接口的区别
转自:http://www.cnblogs.com/lingshaohu/archive/2011/12/06/2278437.html抽象类(abstract class)和接口(interface)的概念是面向对象设计中常用的概念, 也是比较容易混淆的概念. 在这里, 我提出一种区分它们的思路:1. 如果一个类B在语法上继承(extend)了类A, 那么在语义上类B是一个类转载 2012-08-24 13:53:22 · 603 阅读 · 0 评论 -
(转)JAVA – 虚函数、抽象函数、抽象类、接口
转自:http://blog.csdn.net/trojanpizza/article/details/6556604JAVA – 虚函数、抽象函数、抽象类、接口1. Java虚函数虚函数的存在是为了多态。是用于派生类重写该函数。C++中普通成员函数加上virtual关键字就成为虚函数Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java转载 2012-08-24 14:40:43 · 789 阅读 · 0 评论 -
a,b交换
如题:a = a^b;b = b^a;a = a^b;#include #define SWAP(a,b)\ {\ (a) = (a)^(b);(b) = (b)^(a);(a) = (a)^(b);\ }int main(void){ int a = 100原创 2012-08-25 17:08:07 · 1386 阅读 · 0 评论 -
(转)一个五位数字ABCDE*4=EDCBA
转自:http://kinghuimail.blog.163.com/blog/static/958204082010102784413898/一道面试题:一个五位数字ABCDE*4=EDCBA,这五个数字不重复,请编程求出来(转) 2010-11-27 20:44:13| 分类: 学习笔记|字号 订阅一个五位数字ABCDE*4=ED转载 2012-08-26 12:55:44 · 1579 阅读 · 0 评论