Time of Update: 2017-01-19
c++線程池,繼承CDoit,實現其中的start和end標頭檔/* * 多線程管理類 * */ #ifndef CTHREADPOOLMANAGE_H#define CTHREADPOOLMANAGE_H#include <iostream>#include <pthread.h>#include <unistd.h> #include <list>#include <vector>#include
Time of Update: 2017-01-19
BubblSort.c#include<stdio.h> void BubbleSort(int a[],int len){ int i; int j; int h; int temp; for(i=0;i<len-1;++i) { for(j=len-1;j>i;--j) { if(a[j]<a[j-1]) { temp=a[j]; a[j]=a[j-1];
Time of Update: 2017-01-19
原創代碼。‘?'代表任意單個字元,‘*'代表任意0個或多個字元。常用於檔案的搜素匹配。bool MatchWithAsteriskW(wchar_t* str1, wchar_t* pattern){ if (str1 == NULL) return false; if (pattern == NULL) return false; int len1 = lstrlenW(str1); int len2 = lstrlenW(pattern); int mark =
Time of Update: 2017-01-19
C基礎演算法題 好多年沒碰C了 很鬱悶啊~//// main.c// 演算法題//// Created by mac on 14-8-9.// Copyright (c) 2014年 mac. All rights reserved.// #include <stdio.h>#include <math.h> //10./* 求S(n) =
Time of Update: 2017-01-19
最開始左上色塊被感染,通過切換顏色,不斷感染同色色塊。亮點是可以切換圖案,設定方塊個數和最大限制次數。整體還是比較滿意,希望大神指教。#include <stdio.h>#include <windows.h>#include <conio.h>#include <time.h>#include <stdlib.h> int DIFFICULT=44;int count=0 ;int TYPE_SHAPE=2 ;int flag=7 ;
Time of Update: 2017-01-19
我分享的第一個代碼 希望大家給予我改進的建議 我的3和4的功能是空著的我還沒有想好要些啥功能。。。 第一次上傳代碼······ ***還有為啥我上傳的代碼這麼就對不齊了,在vc++6.0裡就很好啊??比如說有些代碼上傳上來就成了在其他代碼後面了對不齊 不規格了 。#include<stdio.h>#include<stdlib.h> #include<string.h>#include<windows.h>#define H
Time of Update: 2017-01-19
首次自己寫程式,很不完善,還有許多問題需要解決。。。見諒見諒#define GDIPVER 0x0110 #define WIN32_LEAN_AND_MEAN #include <windows.h>#include <ObjIdl.h>#include <GdiPlus.h>#include <windowsx.h>#include <tchar.h>#include <mmsystem.h>#include
Time of Update: 2017-01-19
這個小代碼是我憑自己對指標和鏈表的理解和認識,自己實現的,沒有參考其他人的代碼,如果有相同的地方,那真的只是巧合,代碼我在ubuntu 15.04下測試通過,可能存在很多錯誤和漏洞.doublelist.c/************************************************************************* > File Name: doublelist.c > Author: ChenYiLiang > Mail:
Time of Update: 2017-01-19
我們知道,C語言用char資料類型表示一個8位的ANSI字元,預設在代碼中聲明一個字串時,C編譯器會把字串中的字元轉換成由8位char資料類型構成的一個數組:複製代碼 代碼如下:// An 8-bit characterchar c = 'A';// An array of 99 8-bit character and 8-bit terminating zerochar szBuffer[100] = "A
Time of Update: 2017-01-19
C++本身並沒有提供任何多線程機制,但是在windows下,我們可以調用SDK win32 api來編寫多線程的程式,下面就此簡單的講一下:建立線程的函數複製代碼 代碼如下:HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD SIZE_T
Time of Update: 2017-01-19
幾乎所有程式員的第一堂課都是學習helloworld程式,下面我們先來重溫一下經典的C語言helloworl複製代碼 代碼如下:/* hello.c */ #include <stdio.h> int main() { printf("hello world!\n"); return 0; }
Time of Update: 2017-01-19
之前在extern “C” 用法詳解中已經提到過符號的概念,它是編譯器對變數和函數的一種標記,編譯器對C和C++代碼在生產符號時規則也是不一樣的,符號除了本身名字的區別外,還有強符號和弱符號之分我們先看一段簡單的代碼複製代碼 代碼如下:/* test.c */ void hello(); int main() { hello(); return 0;
Time of Update: 2017-01-19
題目描述已知一個只包含0和1的位元,長度不大於10,將其轉換為十進位並輸出。輸入描述輸入一個二進位整數n,其長度不大於10輸出描述輸出轉換後的十進位數,佔一行範例輸入110範例輸出6solution: 很多學過C初學C++的人可能想到的是用字元數組形式讀入再一位一位計算成十進位輸出。 沒必要。 C++類庫提供了位元據類,並且可以用其方法轉換成十進位。 代碼如下:複製代碼 代碼如下:#include <iostream>using namespace std;#include
Time of Update: 2017-01-19
sleep的作用無需多說,幾乎每種語言都提供了類似的函數,調用起來也很簡單。sleep的作用無非是讓程式等待若干時間,而為了達到這樣的目的,其實有很多種方式,最簡單的往往也是最粗暴的,我們就以下面這段代碼來舉例說明(註:本文提及的程式編譯運行環境為Linux)複製代碼 代碼如下:/* filename: test.cpp */ #include <stdio.h> #include <unistd.h> #include
Time of Update: 2017-01-19
const修飾變數關於const最常見的一個面試題是這樣的:char *const和const char*有什麼區別,大家都知道const修飾符代表的是常量,即const修飾的變數一旦被初始化是不能被更改的,這兩個類型一個代表的是指標不可變,一個代表指標指向內容不可變,但具體哪個對應哪個,很多人一直搞不清楚。有這樣一個規律,const修飾的是它前面所有的資料類型,如果const在最前面,那麼把它和它後面第一個資料類行交換.比如上面的const char*交換之後就是char const
Time of Update: 2017-01-19
簡單來說,extern “C”是C++聲明或定義C語言符號的方法,是為了與C相容。說來容易,要理解起來還是得費些周折,首先我們要從C++和C的區別說起。符號大家都知道,從代碼到可執行程式需要經過編譯和連結兩個過程,其中編譯階段會做文法檢測,代碼展開,另外它還會做一件事,就是將變數轉成符號,連結的時候其實是通過符號來定位的。編譯器在編譯C和C++代碼時,將變數轉成符號的過程是不同的。本文所使用的編譯器為gcc4.4.7我們先來看一段簡單的代碼複製代碼 代碼如下:/* hello.c
Time of Update: 2017-01-19
extern聲明變數無外乎如下兩種:1、聲明全域變數2、聲明函數今天我們只談extern,什麼const、static之類等等與之相關或不相關的一律忽略,下面就分別對以上兩種情況一一講解聲明和定義既然提到extern聲明變數,那我們就必須搞清楚聲明和定義的區別。這裡我們將普通資料變數和函數統稱變數。從記憶體配置角度來說,聲明和定義的區別在於聲明一個變數不會分配記憶體,而定義一個變數會分配記憶體。一個變數可以被聲明多次,但是只能被定義一次。基於以上前提,我們可以把聲明和定義類比為指標和記憶體的關係
Time of Update: 2017-01-19
C++實現大數乘法演算法代碼複製代碼 代碼如下://大數乘法演算法#include<iostream>#include<string>#include<cstring>using namespace std;int main(){ string num1,num2; cin >> num1 >> num2; //cout <
Time of Update: 2017-01-19
本文主要是類似wget的進度條的實現,實際就是轉移符\r的使用,\r的作用是返回至行首而不換行複製代碼 代碼如下:#include <stdio.h>#include <stdlib.h>#include <unistd.h>//類似wget的進度條的實現,實際就是轉移符\r的使用,\r的作用是返回至行首而不換行int main(int argc, char *argv[]){ unsigned len =
Time of Update: 2017-01-19
一、前言在Linux平台上有valgrind可以非常方便的協助我們定位記憶體流失,因為Linux在開發領域的使用情境大多是跑伺服器,再加上它的開源屬性,相對而言,處理問題容易形成“統一”的標準。而在Windows平台,伺服器和用戶端開發人員慣用的調試方法有很大不同。下面結合我的實際經驗,整理下常見定位記憶體流失的方法。注意:我們的分析前提是Release版本,因為在Debug環境下,通過VLD這個庫或者CRT庫本身的記憶體流失檢測函數能夠分析出記憶體流失,相對而言比較簡單。而伺服器有很多問題需要