
c/c++
文章平均质量分 72
Jack_Lpz
Jack_Li style
展开
-
简单链表(C实现)
#include#include#includetypedef struct Node{ int data; struct Node *next;}NODE,*PNODE; //NODE代表了struct Node类型 PNODE代表了struct Node*类型PNODE Create_Node(); //进行链表的创建void Reverse_Nod原创 2014-09-12 23:09:55 · 595 阅读 · 0 评论 -
C和指针 var_list的使用与格式化
// max_List.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include #include int get_max(int n_values, ...){ va_list var_arg; int原创 2014-12-17 21:57:34 · 4550 阅读 · 0 评论 -
简单讲一下C语言连接MySQL数据库
1.首先你得将MySQL安装上 apt-get install mysql-server (mysql -uroot -p 登陆测试)2.安装链接库 apt-get install libmysqlclient-dev3.进行数据库的创建,例如: create table t1(a int, name varchar(10)); insert into t1 v原创 2014-12-22 22:44:20 · 13499 阅读 · 0 评论 -
C语言中一个小问题
#include #include int main(){ char send_buf[] = "Hello,client, This is what I want to send you"; char recv_buf[] = "Really? I don't want to recv it anymore,so don't send it to me";原创 2015-08-03 15:27:36 · 476 阅读 · 0 评论 -
how to convert char to char []
#include int main(){ char a='a'; char b[100]; /*step1: use sprintf func*/ sprintf(b,"%c",a); printf("1: %s \n", b); memset(&b, 0x00, sizeof(b)); /*step2: use array原创 2015-10-06 11:58:07 · 386 阅读 · 0 评论 -
内核双链表-1
linux内核链表使用介绍1.linux内核常用的数据有双链表,hash链表,红黑树,基树,区间树,根数,B树。闲来无事,进行了一些研究。2.linux内核的双链表程序,程序还是比较简单。但是和大学时候的双链表程序还是有点差别的。现在我们逐一讲解。 内核里面有个经典的宏[container_of],这个宏的意思是通过结构体中一个数据成员的位置偏移从而获得整个结构体的指针。 其实也是很容易理解,这里原创 2015-10-07 20:32:40 · 326 阅读 · 0 评论 -
内核双链表-2
内核双链表: 3.1这里的双链表程序是很简单,也是使用了许多宏和内联函数,我们现在主要来看下程序。内核中双链表的结构体定义如下:structlist_head { struct list_head *next, *prev;}; 这里的头部只有两个指针域,相当奇怪,我们平时定义的链表主要都是节点域与指针域。这里这么用,自然有好处,将指针直接与数据剥离,对于内核中拥原创 2015-10-08 20:41:18 · 335 阅读 · 0 评论 -
调用C++ .so文件
目标:使用C++成功调用C++文件生成的.so文件场景:最近在设计交易系统,有使用到C++中间件层调用后台服务的状态,现在简单熟悉下怎样用C++动态的去调用.so文件。过程:1. 一般的交易系统后台系统都有中间件层和后台业务逻辑层,写技术的玩玩中间件,写业务的专注于后台业务逻辑处理。今天我们看看怎么样去调用.so文件。 首先列出test.h文件#ifndef _test_h_原创 2016-08-21 19:11:38 · 3475 阅读 · 0 评论 -
c++使用调用xml文件
1. 首先下载这tinyxml官方文件库。http://download.youkuaiyun.com/download/llhhyy1989/4722355 2. 将其中文件放在目录下。建立test.xml文件 100.00 1.0 10000 1 101.00原创 2016-08-21 20:21:01 · 2344 阅读 · 0 评论 -
一个简单的cpp list
list.h#ifndef _list_h_#define _list_h_#include #include #include using namespace std;void Exception(int _condition, const char* _error_msg);templateclass list{public:原创 2017-01-02 19:48:10 · 827 阅读 · 0 评论 -
C和指针 04
#include using namespace std;//查找子字符串 并返回第一个字母char* find_char( char* source, char* chars) //这里主要因为赋值 所以没有使用const{ char* p = source;char* q = chars;while(*p != NULL){if(*p !=原创 2014-11-18 12:01:35 · 538 阅读 · 0 评论 -
c和指针 03
#include using namespace std;//进行无符号整形数据的位反转unsigned int reverse_bits(unsigned int value){unsigned int retVal = 0;for(int i=1; i!=0; i{retVal if(value & 1) //进行比较 如果有1 就进行数据的添加原创 2014-11-16 12:09:48 · 505 阅读 · 0 评论 -
c和指针 02
#include using namespace std;//c和指针 p65第六题int substr(char dst[] , char src[], int start, int len){if( startreturn -1;int i = 0;int j = 0;for(i=start; idst[j] = src[i];return原创 2014-11-13 23:29:11 · 505 阅读 · 0 评论 -
C++内存管理(上)
我们在编程的时候经常性的遇到C++内存方面的问题,现在简单的说说C++的内存管理。1.使用动态内存的主要优点:(1)不同的对象和函数之间可以共享动态内存。(2)可以在运行时确定动态内存分配的大小。2.内存描述(1) int i = 123; //表示定义了一个变量 它的值为123这个变量被分配在堆栈上(2) int *pInt ;pInt= new int; /原创 2014-08-31 21:52:09 · 450 阅读 · 0 评论 -
C++内存管理(下)
内存管理是程序中常见的错组或者bug来源。当您在对象间传递多个指针的时候,很容易忘记在一个正确的时间将执行delete操作,也就会导致内存泄露。现在我们讲讲应对的方案: C++11标准中的智能指针。(建议将内存分配的结果给智能指针)1.一个小知识点:通过将程序放在堆栈上可以避免和内存相关的问题,堆栈比堆安全,因为在堆栈中的变量离开代码作用域的时候,会自动销毁并清理。智能指针便是结合了两原创 2014-08-31 21:53:27 · 517 阅读 · 0 评论 -
C++运算符重载
C++运算符重载1.运算符重载的意义:通过运算符重载可以改变对类的自定义行为,使得自定义类的行为和内建类型一样。 也可以获得对程序更大的控制权,使用者使用起来更加的方便。2.运算符重载的限制:(1)不能添加新的运算符(只能重载已知的运算符+,-,*,/,new,delete,>等等)(2)有些运算符不能重载(例如::, ., sizeof,?:)(3)不原创 2014-08-31 21:54:16 · 606 阅读 · 0 评论 -
C++引用
在C++中,引用是变量的别名,所有对引用的修改都会改变被引用的变量的值,可以将引用当成隐式指针,但是这个指针没有取变量的地址。使用引用的好处: 1)效率:复制较大的对象或者结构体需要一段时间,按引用传递只是把指向对象或者结构体的指针传递给函数2)正确性:并非所有的对象都支持按值传递,及时允许按值传递的对象也许不会支持deepcopying.下面写一些代码说明:#include"原创 2014-08-31 21:55:59 · 480 阅读 · 0 评论 -
C++11正则表达式
优势:使得字符串的处理更加简单一些相关的操作:验证:检查字符串是否是想要的合法性决策:判断一个输入标书哪种字符串解析:从输入的字符串中查找自己想要的信息转换:搜索字符串,并将字符串替换为新的格式化的字符串遍历:搜索字符串所有出现的地方符号化:根据一组分隔符将一个字符串分解为多个子字符串一些重要术语:模式:正则表达式实际上和给定序列中所有字符是否匹配原创 2014-08-31 21:57:21 · 1579 阅读 · 0 评论 -
C++对象模型1:
1.程序使用内存区一般而言,计算机程序由代码和数据组成,这两个部分是影响一个程序所需内存大小的因素。如何正确的使用程序编写技巧和编程语言的语法特性会优化所生成代码的大小:数据时代码所要处理的对象一个程序占用的内存区域一般为:1>全局/静态数据区域2>常量数据区3>代码区4>栈5>堆在此:程序的代码在存储在代码区域中,而数据类型则要根据数据种类的不同,存放在不同的原创 2014-08-31 21:58:52 · 542 阅读 · 0 评论 -
C++对象的内存布局
这次我们探究探究C++的内存布局以及C++语法特性的实现方式1、首先对一个Test类进行内存的分析#include"stdafx.h"#includeusingnamespacestd;classTest{public:staticintiStatic;intiVal;charcVal;Test(){};//virtualvoid原创 2014-08-31 21:59:39 · 502 阅读 · 0 评论 -
C++语言特性性能分析之构造和析构函数
1.构造函数和析构函数的特点是:当对象创建的时候,自动执行构造函数,当对象销毁的时候,自动执行析构函数(构造函数主要进行数据的初始化和取得该对象被使用前的所需要的一些资源析构函数则是释放资源)在一个对象的声明周期内构造函数和析构函数都执行一次。创建一个对象一般主要有两种方式:1>在线程运行的栈中创建{.....Testt;.....}在这个时候,销毁原创 2014-08-31 22:00:48 · 717 阅读 · 0 评论 -
C++性能分析之临时对象
以前说过:C++临时对象的创建和销毁对程序性能有一定的影响,尤其当该对象的类处于一个复杂继承体系的末端,或者该对象包含很多成员变量对象时,对程序的影响尤为明显。避免创建不必要的对象,不仅意味着在编程时,主要减少显示出现在源码中的对象创建,还有在编程过程中,编译器在某些特定情况下生成的隐士的临时对象,这些对象创建并不出现在源码中,而是由编译器在编译过程中“悄悄生成”,并在适当的时原创 2014-08-31 22:01:33 · 567 阅读 · 0 评论 -
C和指针01
#include #include #include #define MAX_COLS 20 //表示最大的列号#define MAX_INPUT 200 //表示每个输入行的最大长度bool check_numbers(int columns[]) //课后第五题 添加的函数{int i = 0;int len = sizeof(co翻译 2014-11-10 20:20:48 · 475 阅读 · 0 评论 -
c++11 线程原子变量
#include #include #include #include #include void func(int& _counter){ for(int i=0; i ++_counter;}void func2(std::atomic& _counter){ for(int i=0; i ++_counter原创 2017-01-02 20:28:50 · 4779 阅读 · 0 评论