SDL入门教程(二)-SDL的装载,位标

1.1:SDL_Init! 我们回顾一下前面的那个小程序,所使用到的第一个SDL函数是:SDL_Init(SDL_INIT_EVERYTHING); 这是SDL的装载函数,也就是说,SDL的其他函数必须在这个函数将SDL装载之后才能够正常调用。我们看一下函数原形: int SDL_Init(Uint32 flags); 它的返回值是int,这个我们很熟悉。如果SDL成功初始化装载,函数返回0,如果异常,则返回-1。接下来,这个函数的形参...

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

回文测试的小程序

/* *author: *function: *data: */ #include<stdio.h> #include<string.h> #define LEN 100 int test(char *); int main() { char s[LEN]; while(1){ printf("input a string:"); scanf("%s", s); if(test(s)==1) printf("HuiWen!\n"); else printf("Not HuiWen\n"); } return 0; } int test(char *string) { int i; char *p, *q; p=string; q=string+strlen(string)-1; for...

作者: pluto1113 发布时间: 12-26

终止处理程序实例

预备知识: 1. C语言中使用静态函数的好处: 1)静态函数会被自动分配在一个一直使用的存储区,直到退出应用程序实例,避免了调用函数时压栈出栈,速度快很多。 2) 关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限 于本文件。 使用内部函数的好处是:不同的人编写不同的函数时,不用担...

作者: longmenyu 发布时间: 12-24

父进程获取子进程退出状态(2) -- 通过wait系统调用

main.cpp: #include <unistd.h> #include <iostream> #include <sys/wait.h> #include <stdlib.h> using namespace std; int main() { int ret; ret = fork(); if (ret > 0) { cout << "parent start\n"; int status; pid_t pid; pid = wait(&status); if (pid != ret) { cout << "parent wait error(wait return pid:" << pid << ", fork return pid:" << ret << ")\n"; e...

作者: flynetcn 发布时间: 12-24

mfc中CImageList的使用简介(转)

mfc中CImageList的使用简介(转) 图像列表控制(CImageList)是相同大小图像的一个集合,每个集合中均以0为图像的索引序号基数,图像列表通常由大图标或位图构成,其中包含透明位图模式。可以利用WINDOWS32位应用程序接口函数API来绘制、建立和删除图像,并能实现增加、删除、替换和拖动图像等操作。图像列表控制提供了控制图像列表的基本方法,这些方法在WINDOWS95及以后...

作者: crear 发布时间: 12-23

分割字符串函数strsep和strtok

strsep() #include <string.h> #include <stdlib.h> #include <stdio.h> int main(void) { char ptr[]={ "abcdefghijklmnopqrstuvwxyz "}; char *p,*str= "m "; p=ptr; printf( "%s\n ",strsep(&p,str)); printf( "%s\n ",p); str= "s "; printf( "%s\n ",strsep(&p,str)); printf( "%s\n ",p); return 0; } 运行结果 [root@localhost strsep]# gcc -o strsep strsep.c [roo...

作者: ricky_pc 发布时间: 12-23

父进程获取子进程退出状态(1) -- 通过信号传递..

main.cpp: #include <unistd.h> #include <iostream> #include <sys/wait.h> #include <signal.h> #include <stdlib.h> using namespace std; void child_over_callback(int); void parent_sig_handler(int sig) { cout << "parent catch signal:" << sig << endl; if (sig == SIGCHLD) { int status; pid_t pid; pid = wait(&status); cout << "parent's child - pid:"<< ...

作者: flynetcn 发布时间: 12-23

MySQL C 语言应用程序接口开发教程(1)

关于教程 这是一篇 MySQL 数据库的 C 语言开发教程。它讲述了用 C 语言开发 MySQL 应用程序的基本过程。 关于 MySQL 数据库 MySQL 是一个重要的开放源代码的、多用户的、多线程的数据库管理系统。MySQL 在 Web 应用中很流行。它是非常流行的 LAMP(Linux, Apache, MySQL, PHP) 架构的一部分。MySQL 被瑞典一家名为 MySQL AB 并对开源事业有杰出贡献的公司所有。MySQL 数据库...

作者: ricky_pc 发布时间: 12-22

字符与编码

From here. Just for fun.. ANSI编码 (本地化) GB2312.. 为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符。比如:汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。 不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编...

作者: lostyue 发布时间: 12-21

vector的capacity和reverse成员函数

预备知识: 1.为了使vector容器实现快速的内存分配,其实际分配的容量要比当前所需的空间多一些;vector预留了这些额外的存储区,用于存放新添加的元素。 2.容器的capacity(容量)与size(长度)的区别:size指容器当前拥有的元素个数;capacity指容器在必须分配新存储空间之前可以存储的元素总数。 3.reverse操作告诉vector容器应该预留多少元素的存储空间。 程序清单: #...

作者: longmenyu 发布时间: 12-21