Time of Update: 2017-01-19
1、概述 在C語言中,函數是來完成子程式或者某個模組的功能。有主程式或者其他函數調用,其他函數之間可以相互調用。同一函數可以被一個或多個函數任意次調用。注意: a、一個C程式有一個或多個程式模組組成,每一個程式模組作為一個來源程式檔案。一個源檔案可以為多個C程式共用。
Time of Update: 2017-01-19
1、編譯時間計算運算子sizeof,可用類型或變數做參數,計算佔用記憶體的大小。sizeof後若是類型必須加括弧,若是變數名可不加括弧。sizeof(x)可用來定義數組維數如:複製代碼 代碼如下:printf("%d\n", sizeof(short)); 輸出的結果為短整型的長度2。用結構類型或變數做參數時,sizeof 返回實際的大小,當用於靜態數組時,sizeof 返回全部數組的尺寸。sizeof 操作符不能返回動態地被指派了的數組或外部的數組的尺寸2、
Time of Update: 2017-01-19
本文執行個體講述了C語言實現奇數階魔方陣的方法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:#include "stdio.h"#include "string.h"#include "stdlib.h"#define N 5void main(){int a[N][N]={0};int i,j;int k;i = 0;j = N/2;a[0][j]=1;for(k = 2; k <= N*N; k++){if( i == 0 && j == N-1
Time of Update: 2017-01-19
本文執行個體講述了C語言實現求定積分的方法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:#include <cmath> #include <cstdio>#define ACC 1000float solve(float (*p)(float),float up,float down,int acc);float fun_exp(float x);float fun_qua(float x);void main(){char
Time of Update: 2017-01-19
守護進程(Daemon)是運行在背景一種特殊進程。它獨立於控制終端並且周期性地執行某種任務或等待處理某些發生的事件。守護進程是一種很有用的進 程。Linux的大多數伺服器就是用守護進程實現的。比如,Internet伺服器inetd,Web伺服器httpd等。同時,守護進程完成許多系統任 務。比如,作業規划進程crond,列印進程lpd等。守護進程的編程本身並不複雜,複雜的是各種版本的Unix的實現機制不盡相同,造成不同Unix環境下守護進程的編程規則並不一致。這需要讀者注意,照搬
Time of Update: 2017-01-19
本文執行個體講述了Visual C++程式設計中Windows GDI貼圖閃爍的解決方案。分享給大家供大家參考。具體如下:一般的windows 複雜的介面需要使用多層視窗而且要用貼圖來美化,所以不可避免在視窗移動或者改變大小的時候出現閃爍。先來談談閃爍產生的原因原因一:如果熟悉顯卡原理的話,調用GDI函數向螢幕輸出的時候並不是立刻就顯示在螢幕上只是寫到了顯存裡,而顯卡每隔一段時間把顯存的內容輸出到螢幕上,這就是重新整理周期。一般顯卡的重新整理周期是
Time of Update: 2017-01-19
指標、引用和取值什麼是指標?什麼是記憶體位址?什麼叫做指標的取值?指標是一個儲存電腦記憶體位址的變數。在這份教程裡“引用”表示電腦記憶體位址。從指標指向的記憶體讀取資料稱作指標的取值。指標可以指向某些具體類型的變數地址,例如int、long和double。指標也可以是void類型、NULL指標和未初始化指標。本文會對上述所有指標類型進行探討。根據出現的位置不同,操作符 *
Time of Update: 2017-01-19
在C++編程過程中,隨著項目的越來越大,代碼也會越來越多,並且難以管理和分析。於是,在C++中就要分出了頭(.h)檔案和實現(.cpp)檔案,並且也有了Package的概念。對於以C起步,C#作為“母語”的我剛開始跟著導師學習C++對這方面還是感到很模糊。雖然我可以以C的知識面對C++的文法規範,用C#的思想領悟C++中類的使用。但是C#中定義和實現是都在一個檔案中(其實都是在類裡面),而使用C的時候也只是編程的剛剛起步,所寫的程式也只要一個檔案就夠了。因此對於C++的Package理解以及.h
Time of Update: 2017-01-19
linux核心和其他一些開源的代碼中,經常會遇到這樣的代碼:do{ ...}while(0)這樣的代碼一看就不是一個迴圈,do..while表面上在這裡一點意義都沒有,那麼為什麼要這麼用呢?實際上,do{...}while(0)的作用遠大於美化你的代碼。查了些資料,總結起來這樣寫主要有以下幾點好處:1、輔助定義複雜的宏,避免引用的時候出錯:舉例來說,假設你需要定義這樣一個宏:複製代碼 代碼如下:#define DOSOMETHING()\
Time of Update: 2017-01-19
本文執行個體講述了C++結構體用法。分享給大家供大家參考。具體分析如下:C++結構體提供了比C結構體更多的功能,如預設建構函式,複製建構函式,運算子多載,這些功能使得結構體對象能夠方便的傳值。比如,我定義一個簡單的結構體,然後將其作為vector元素類型,要使用的話,就需要實現上述三個函數,否則就只能用指標了。複製代碼 代碼如下:#include <iostream> #include <vector> using namespace
Time of Update: 2017-01-19
本文執行個體分析了C++中回呼函數(CallBack)的用法。分享給大家供大家參考。具體分析如下:如果試圖直接使用C++的成員函數作為回呼函數將發生錯誤,甚至編譯就不能通過。其錯誤是普通的C++成員函數都隱含了一個傳遞函數作為參數,亦即“this”指標,C++通過傳遞this指標給其成員函數從而實現程式函數可以訪問C++的資料成員。這也可以理解為什麼C++類的多個執行個體可以共用成員函數卻-有不同的資料成員。由於this指標的作用,使得將一個CALL-BACK型的成員函數作為回呼函數安裝時就會因
Time of Update: 2017-01-19
本文執行個體講述了c++中map的基本用法和嵌套用法。分享給大家供大家參考。具體分析如下:C++中map容器提供一個索引值對容器,map與multimap差別僅僅在於multiple允許一個鍵對應多個值。本文主要總結一下map基本用法和嵌套用法樣本。一、map基本用法1. 標頭檔 複製代碼 代碼如下:#include <map>2. 定義 複製代碼 代碼如下:map<int,int> my_Map; //注意這裡的int和int可以是其他類型或者是複製代碼
Time of Update: 2017-01-19
本文執行個體講述了C++中sprintf使用的方法與printf的區別。分享給大家供大家參考。具體分析如下:首先我們在MSDN看一下printf的原型和sprintf的原型複製代碼 代碼如下:int printf( const char *format [, argument]... );和複製代碼 代碼如下:int sprintf( char *buffer, const char *format [, argument] ...
Time of Update: 2017-01-19
本文執行個體講述了C++利用stringstream進行資料類型轉換的方法。分享給大家供大家參考。具體分析如下:在C++標準庫裡面,使用stringstream 可以用於各種資料類型之間的轉換例如string 轉 int複製代碼 代碼如下:std::string strId = "1"; int id = 0; std::stringstream ss; ss << strId.c_str(); ss >>
Time of Update: 2017-01-19
本文執行個體講述了C++迴圈隊列實現模型。分享給大家供大家參考。具體分析如下:前段時間在知乎上看到這樣一個小題目:用基本類型實現一隊列,隊列要求size是預先定義好的的。而且要求不可以使用語言內建的api,如C++的STL。普通的實現很簡單,但是現在要求要儘可能的時間和空間複雜度的最佳化,要和語言內建的api比較時間和空間。這個隊列還要支援如下的操作:constructor:
Time of Update: 2017-01-19
本文執行個體講述了C語言實現將字串轉換為數位方法。分享給大家供大家參考。具體實現方法如下:C語言提供了幾個標準庫函數,可以將字串轉換為任意類型(整型、長整型、浮點型等)的數字。以下是用atoi()函數將字串轉換為整數的一個例子:複製代碼 代碼如下:# include <stdio. h># include <stdlib. h>void main (void) ;void main (void){ int
Time of Update: 2017-01-19
快速排序不會直接得到最終結果,只會把比k大和比k小的數分到k的兩邊。(你可以想象一下i和j是兩個機器人,資料就是大小不一的石頭,先取走i前面的石頭留出迴旋的空間,然後他們輪流分別挑選比k大和比k小的石頭扔給對面,最後在他們中間把取走的那塊石頭放回去,於是比這塊石頭大的全扔給了j那一邊,小的全扔給了i那一邊。只是這次運氣好,扔完一次剛好排整齊。)為了得到最後結果,需要再次對下標2兩邊的數組分別執行此步驟,然後再分解數組,直到數組不能再分解為止(只有一個資料),才能得到正確結果。 ——
Time of Update: 2017-01-19
在Java,要實現某個時間調用某段代碼,是很簡單的事情,那就是使用介面。而在C++裡,有一個比較高深的方式,那就是使用函數指標。比如Cocos2d-x的定時器(schedule)、訊息訂閱(NotificationCenter)都使用了函數指標來完成回調的功能。這也是為什麼我們總是能把某個函數作為參數傳進去,然後在某個時刻這個函數會被調用。一、函數的地址要擷取一個int變數的地址很簡單,比如int num;
Time of Update: 2017-01-19
最近事情比較多,其實並不忙,就是事情比較影響思緒,所以都沒心思寫文章了。今天主要說說函數的一些基本情況吧,同時也解釋一下新手最容易迷糊的——什麼時候要用指標參數?一、函數原型和函數定義大家都知道,C++定義函數之前,還需要聲明函數原型,對於習慣Java等其他進階語言的朋友來說,真心覺得這很煩人。如下代碼:複製代碼 代碼如下:// 聲明函數原型void startGame(int param);// 函數定義void startGame(int param){
Time of Update: 2017-01-19
效果:思路:首先,擷取圖片物理地址,然後進行判斷將圖片儲存到檔案夾下,再將圖片的資訊儲存到資料庫。資料庫:複製代碼 代碼如下:create table image1(ID int identity(1,1) primary key,ImageName varchar(100) ,ImageType varchar(20),ImagePath varchar(200))代碼:複製代碼 代碼如下:<body> <form id="form1"