Time of Update: 2018-12-04
利用ibjpeg庫進行圖片的壓縮,經常調用jpeg_stdio_dest(&cinfo,fp/*檔案指標*/)函數。由於fp檔案是在調用函數之前就分配好了的足夠大的記憶體來儲存壓縮後的映像,所以經過壓縮後的映像大小(單位為kb)即為fp分配的記憶體大小。因此就會出現分配fp的記憶體越大就越會浪費空間;但如果分配fp的記憶體不夠大,就會造成壓縮崩潰。 libjpeg圖片壓縮,只有在壓縮結束後才知道具體的記憶體大小。所以動態分配記憶體既不會造成空間浪費,也不會造成壓縮崩潰。
Time of Update: 2018-12-04
前一些時間裡對這三類的重載不太瞭解.概念上有一些混.今天做了一個這樣的例子來測試了一下到底這個幾種函數的不同.基類:class A {public: A(); void f1(); virtual void f2(); virtual void f3()=0; virtual ~A();};子類:class B : public A {public: B(); void f1(); void f2(); void f3(); virtual ~B();};主函數:int main(int
Time of Update: 2018-12-04
在做VC開發時經常遇到c++與VC++類型不符的錯誤,需要上網查資料,因為本人的記憶很差,經常出現同樣的錯誤,每次都要上網去查,現將各類類型轉換總結如下,並把其陸續補齊,我會在以後更新,供自己後者大家查閱,以後不必再在網上海尋了,1 string 2 CString CString.format("%s",string.c_str()); 2 CString 2 stringstring str(CString.GetBuffer(str.GetLength()));3 string 2
Time of Update: 2018-12-04
3.3標準庫vector類型#include<vector>using std::vector;vector不是一種資料類型,它是一種類模版。初始化vector對象的方法:vector<int> ivec1; //ivec檔案類型為int型,預設建構函式vector<int> ivec2(iver1); //ivec2是ivec1的一個副本,ivec2必須和ivec1是相同類型的!!vector<int> ivec3(n,i); //
Time of Update: 2018-12-04
條款20:安全的覆蓋掉C++默默為我們編寫的函數更多條款請前往原文出處:http://blog.csdn.net/liuchang5我們先試著寫一個最小的類,它的代碼中不包含任何成語函數和實現,因此看上去是這樣的:class Empty{};看上去他空空如也,但其實並非如此。C++編譯器會默默為我們填寫上如下幾個成員函數,用以完成一個簡單類所應具備的“日常”功能。上面的Empty成了如下這般模樣:class Empty{public: Empty(){ ... };
Time of Update: 2018-12-04
前一陣子學習Xerces-C++用於解析指定格式XML文檔。在這裡,把自己的學習經曆和大家分享一下,在這裡僅僅講一些入門的知識,希望對大家有所協助。Xerces-C++是什嗎? Xerces-C++ 的前身是 IBM 的 XML4C 項目。XML4C 和 XML4J 是兩個並列的項目,而 XML4J 是 Xerces-J——Java 實現——的前身。IBM 將這兩個項目的原始碼讓與 Apache 軟體基金會(Apache Software Foundation),他們將其分別改名為
Time of Update: 2018-12-04
【轉】在Symbian OS平台上移植C語言工程的方法原文地址:http://blog.csdn.net/dznlong/archive/2006/02/13/597942.aspx Symbian是應用於高端手機(智能手機)上的一種作業系統,諾基亞、索愛的高端手機便是基於Symbian作業系統的,Symbian OS的優勢在於其高穩定性和節能性,並且有眾多主流手機產商的支援,現在是高端手機上的主流作業系統之一。在Synbian
Time of Update: 2018-12-04
C/C++和Lua的互動 一、C/C++調用Lua注意點1、extern "C"2、luaL_openlibs(L)3、luaL_dofile(L, "test.lua")cpp檔案:#include <stdio.h>//Since the static Lua libraries are written in C, you must import them as such: extern "C"{#include <lua.h>#include
Time of Update: 2018-12-04
程式員是很懶的。我們都知道,成員變數要初始化,要不就會出現很蛋疼的問題。但是一個有50個變數的類,去一個個寫初始化式很傻,又不能跟c一樣直接memset(POD可以)。想把初始化這部分自動化,在網上找半天找不到相應的指令碼(如果誰有希望能告訴我沒,謝謝:)),於是只好自己寫了個簡單的,順便分享下:#!/bin/sh#useage#./variables_initializate.sh path_to_your_header_file [op]#op 1,init the variables
Time of Update: 2018-12-04
在C語言中,static的字面意思很容易把我們匯入歧途,其實它的作用有三條。 (1)先來介紹它的第一條也是最重要的一條:隱藏。 當我們同時編譯多個檔案時,所有未加static首碼的全域變數和函數都具有全域可見度。為理解這句話,我舉例來說明。我們要同時編譯兩個源檔案,一個是a.c,另一個是main.c。 下面是a.c的內容 char a = 'A'; // global variable void msg() { printf("Hello/n"); } Examda提示:
Time of Update: 2018-12-04
四、定義C#的類既然類類型是C#中最重要、最常見的類型,因此它是我要介紹的重點,實際上,C#中的許多特性都可以通過類類型來體現。前面已經介紹,一個類對象中,主要包括欄位、屬性和方法。不過除此之外,在類類型中還可以定義嵌套類,也可以定義一個常量。對於一個沒有任何編程知識的初學者而言,也許還應介紹一下常量與變數。不過從它們的名字就可以非常清晰地辨明二者的區別,常量其值是不可改變的,而變數的值則可以修改,除非該變數是唯讀(如設定為readonly)。最好的常量的例子就是圓周率值,這個值當然是不變化的,
Time of Update: 2018-12-04
五、const、readonly和static在第四節中,我介紹了常量的定義,其關鍵字就是const。在定義常量時,必須賦予其初始值。一旦賦予了初始值後,就不能修改其值。也就是所謂的常量值不能更改的含義。由於C#是一門純粹的物件導向語言,並不存在一個常量或者變數游離於對象之外,因此,這些定義,必然都是在一個類型內完成的。關於常量的使用,除了會用作一些演算法的臨時常量值以外,最重要的是定義一些全域的常量,被其他對象直接調用。而集中這些常量最好的類型是struct(結構)。關於struct我會在後面
Time of Update: 2018-12-04
二、C#與物件導向程式設計語言C#是純粹的物件導向程式設計語言,它真正體現了“一切皆為對象”的精神。在C#中,即使是最基本的資料類型,如int,double,bool類型,都屬於System.Object類型。此外,使用C#編程,不會存在與游離於對象之外的屬於過程的東西。因此,學習C#,就必須具有物件導向思想,不明白所謂的“物件導向思想”,就不可能掌握C#的精髓,而對於C#的理解,就只能僅限於語言特色的表面了。很多講解物件導向思想的書籍和文章喜歡將物件導向與面向過程相比較,然而對於學習程式設計的
Time of Update: 2018-12-04
Singleton模式 Singleton可以說是《Design Pattern》中最簡單也最實用的一個設計模式。那麼,什麼是Singleton? 顧名思義,Singleton就是確保一個類只有唯一的一個執行個體。Singleton主要用於對象的建立,這意味著,如果某個類採用了Singleton 模式,則在這個類被建立後,它將有且僅有一個執行個體可供訪問。很多時候我們都會需要Singleton模式,最常見的比如我們希望整個應用程式中只有一個連
Time of Update: 2018-12-04
#define _GNU_SOURCE#include <stdio.h>#include <string.h>#include <stdlib.h>#include <time.h>#include <ctype.h>#include <errno.h>#include <unistd.h>#include <setjmp.h>#include <sys/stat.h>#include
Time of Update: 2018-12-04
第三章 分析C語言的聲明const int * grape;int const * grape;int * const grape;最後一種情況指標是唯讀,上面兩種指標所指的對象是唯讀;結構體可以用於段位,之前沒聽說過吧:#include<stdio.h>int main() {struct bit_field{unsigned int a :1;unsigned int b :4;unsigned int c :8;};struct bit_field temp;temp.a =
Time of Update: 2018-12-04
下面這個程式輸出什嗎?enum {false,true};int main(){ int i=1; do { printf("%d/n",i); i++; if(i < 15) continue; }while(false); return
Time of Update: 2018-12-04
/C++中的DLL函數原型為 //extern "C" __declspec(dllexport) bool 方法名一(const char* 變數名1, unsigned char* 變數名2) //extern "C" __declspec(dllexport) bool 方法名二(const unsigned char* 變數名1, char* 變數名2)
Time of Update: 2018-12-04
參照sourceforge的開源項目,資料轉送採用WDDX方法把對象及其屬性序列化,接收端則解序列化解析出相應的資料。 //****************************************************************************// ______// .-" "-.// / AOL ///
Time of Update: 2018-12-04
仿函數(Functor、Function Object)傳遞給STL演算法的函數型參數(functional arguement)不一定要是函數,可以是行為類似於函數的對象,即Function Object或者Functor。STL中大量運用了Function Object,也提供了很多預先定義的Function