c
文章平均质量分 77
人生如叶
时间的逆旅,落叶的温柔
展开
-
linux time
#include #include #include void sysLocalTime(){ time_t timesec; struct tm *p; time(×ec); p = localtime(×ec); printf("%d%d%d%d%d%d\n", 1900+p原创 2016-07-26 10:59:16 · 323 阅读 · 0 评论 -
c 笔记
2016.3.15 printf();函数只识别第一个参数,即格式字符串,对于后一个参数,如你不指定,则当作32位的int来处理. 此时进行符号扩展,变成32位,如上所得. printf(“%x\n”, (unsigned char)ch);同样是上面的原因.把他当作signed char定义,可是输出时转化为unsigned 故输出8位.(-1的机内补码表示为全1,即ffffffffH)原创 2017-04-19 15:13:27 · 249 阅读 · 0 评论 -
SDL2 像素操作
本文通过surface操作:#include <SDL2/SDL.h>#include <stdio.h>SDL_Window* window = NULL;SDL_Surface* surface = NULL;#define WINDOW_WIDTH 1000#define WINDOW_HEIGHT 800void init(){ SDL_Init(SDL_INIT_VIDE原创 2017-04-19 15:52:50 · 1725 阅读 · 0 评论 -
c语言 volatile 关键字作用
volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。例如: volatile int i=10; int j = i; … int k = i;volatile 告诉编译器i转载 2017-05-06 14:53:32 · 275 阅读 · 0 评论 -
extern "C"
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言, C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言 ,为了支持函数的重载,C++对全局函数的处理方式与C有明转载 2017-06-23 17:03:59 · 275 阅读 · 0 评论 -
error: field * has incomplete type
在编译程序是出现了如题错误, 类或结构体有前向声明的用法,编译到这里时还没有发现定义,不知道该类或者结构的内部成员,没有办法具体的构造一个对象,所以会报错。 两种解决方法: 方法一:将类成员改成指针就好了; 方法二:将结构体定义放同一个地方。原创 2017-07-12 18:49:33 · 4239 阅读 · 0 评论 -
函数指针
1.简单的函数指针的应用 形式1:返回类型(*函数名)(参数表) char (*pFun)(int); char glFun(int a){ return;} void main() { pFun = glFun; (*pFun)(2); } 第一行定义了一个指针变量pFun。首先我们根据前面提到的“形式1”认识到它是一个指向某种函数的指针,这转载 2017-07-07 09:37:56 · 254 阅读 · 0 评论 -
pthread 主线程子线程退出关系
我们在一个线程中经常会创建另外的新线程,如果主线程退出,会不会影响它所创建的新线程呢?下面就来讨论一下。1、 主线程等待新线程先结束退出,主线程后退出。正常执行。 实例代码:#include "apue.h" #include <pthread.h> pthread_t ntid;//线程ID void printids(const char *s) { pid_转载 2017-09-14 13:02:48 · 3949 阅读 · 0 评论 -
各种数据类型的取值范围(总结全)
bool型为布尔型,占1个字节,取值0或1。BOOL型为int型,一般认为占4个字节,取值TRUE/FALSE/ERROR。sbyte型为有符号8位整数,占1个字节,取值范围在128~127之间。bytet型为无符号16位整数,占2个字节,取值范围在0~255之间。short型为有符号16位整数,占2个字节,取值范围在-32,768~32,767之间。ushort型为无符号原创 2016-07-18 10:41:13 · 33473 阅读 · 1 评论 -
返回字符串
有四种方式:1。使用堆空间,返回申请的堆地址,注意释放2。函数参数传递指针,返回该指针3。返回函数内定义的静态变量(共享)4。返回全局变量 其实就是要返回一个有效的指针,尾部变量退出后就无效了。 使用分配的内存,地址是有效 char *fun() { char* s = (char*)calloc(转载 2016-07-26 14:54:46 · 455 阅读 · 0 评论 -
c调用c++接口库
C语言中没有类的概念,如何调用呢,需要封装一下,增加一个中间层。这个中间层屏蔽了类,提供一个函数给上层,并且还要用c++编译器来编译。 下面举例,说明一个封装策略: //code in add.cxx #include "add.h"int sample::method(){ cout}//code in add.h #include using n转载 2016-11-18 10:59:52 · 522 阅读 · 0 评论 -
fgets、gets和scanf的区别
gets()从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串。 注意:gets函数可以无限读取,不会判断上限,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这就覆盖了堆栈原转载 2016-01-21 15:02:15 · 504 阅读 · 0 评论 -
open,fopen,read,fread,write,fwrite
fread与read的区别 f是ANSI的C标准库。而后者的是UNIX下的系统调用。 fread带有缓冲,是read的衍生,或者说fread是通过read实现的要想直接和硬件打交道,必须用read fopen/fread是C标准的库函数,操作的对象是: file streamopen/read是和操作系统有关的系统调用。操作的对象是: “file descr转载 2016-06-24 17:16:09 · 349 阅读 · 0 评论 -
结构体互为成员
我定义了两个类型typedef stuct{ int nMember1; PBBB pMember2;}AAA, *PAAA;typedef struct{ int nMember1; PAAA pMember2;}BBB, *PBBB这样两个类型怎么声明?更多分享到:相关知识库: Scal原创 2016-07-26 09:35:53 · 432 阅读 · 0 评论 -
二级指针分配内存(不小心晕了就来看一下)
1, int arr[4][5]; 这个是静态直接建立 内存连续2,int (*arr)[5]=new int[4][5]; 动态分配 内存连续3,int *arr[4]; 静态指针数组法,它是由指向一系列内存的指针组成, 所指向的内存不一定连续 如: int *p[4]; p[1]=new int[5]; p[2]=new int[原创 2016-09-02 19:18:46 · 7081 阅读 · 0 评论 -
linux printf color颜色 \033[
color.h#define NONE "\033[m"#define RED "\033[0;32;31m"#define LIGHT_RED "\033[1;31m"#define GREEN "\033[0;32;32m"#define LIGHT_GREEN "\033[1;32m"#define BLUE原创 2016-09-23 17:14:29 · 2585 阅读 · 0 评论 -
静态库制作使用示例
制作:使用:当.o一样使用原创 2016-11-03 15:31:31 · 356 阅读 · 0 评论 -
大端小端
对于0x11223344 储存如下:原创 2017-04-12 09:51:33 · 531 阅读 · 0 评论 -
printf 耗时
经过大量次、差异化、区别运算,得出在inter-i3,ubuntu15.10下单行printf: 平均耗时约43微秒 重定向到文件后耗时减少了73%左右,所以主要耗时是在输出到屏幕上。原创 2017-04-13 10:44:33 · 2494 阅读 · 1 评论 -
多线程提高效率的情况
今天遇到一个问题,一个高频声卡操作流程中加入一行printf(printf不是内核调用而是属于标准函数库)严重影响了系统的效率以致程序未能达到目的,不加printf则运行正常,那些同时操作复杂界面和播放音效的游戏都能顺畅地运行,说明真正原因并不在于增加了多少CPU的负担,而可能是两个阻塞流程串行运行对其中一个高频操作的运行造成了影响。于是尝试分了两个线程分开处理,结果效率提高了两倍(以运行总时间判断原创 2017-04-13 17:39:59 · 715 阅读 · 0 评论 -
静态链接库依赖测试
静态链接库依赖测试测试内容:静态库libFun.a的一个函数libFun()依赖于另一个文件vara.c的一个函数varaFun().更改varaFun()内容,测试libFun()的反应。 测试结果:只是链接关系,不用重新编译静态库。程序运行了新的内容。vara.h#ifndef __VARA_FUN_H__#define __VARA_FUN_H__void varaFun(char* st原创 2017-02-14 12:20:52 · 674 阅读 · 0 评论 -
c 笔记
2016.3.15printf();函数只识别第一个参数,即格式字符串,对于后一个参数,如你不指定,则当作32位的int来处理.此时进行符号扩展,变成32位,如上所得.printf("%x\n", (unsigned char)ch);同样是上面的原因.把他当作signed char定义,可是输出时转化为unsigned故输出8位.(-1的机内补码表示为全1,即ffffffffH)原创 2016-03-15 20:17:12 · 304 阅读 · 0 评论