Time of Update: 2018-12-04
在ubuntu下,用C寫下int main(){ int N=10; int a[N]; return 0;}編譯沒問題。但在window下用VS2008測試,出現問題:error C2057: 應輸入常量運算式error C2466: 不能分配常量大小為 0 的數組error C2133: “a”: 未知的大小原因:與作業系統無關,與編譯器相關,在指定使用C99的情況下支援。據說gun gcc 對標準c做了擴充,其中一個擴充就是變長數組。
Time of Update: 2018-12-04
轉自:http://badboywang.iteye.com/blog/4463501. plain new 普通newvoid*operator new(std::size_t)throw(std::bad_alloc); void operator delete( void *) throw(); 該運算子在分配失敗時將拋出異常,而非返回NULL。使用時要包含 <new>標頭檔。正常使用new,但要配以異常處理。如:char *getMemory(unsigned long
Time of Update: 2018-12-04
C++提供了關鍵字explicit,可以阻止不應該允許的經過轉換建構函式進行的隱式轉換的發生。聲明為explicit的建構函式不能在隱式轉換中使用。 C++中, 一個參數的建構函式(或者除了第一個參數外其餘參數都有預設值的多參建構函式), 承擔了兩個角色。 1 是個構造器 2 是個預設且隱含的類型轉換操作符。 所以, 有時候在我們寫下如 AAA = XXX, 這樣的代碼, 且恰好XXX的類型正好是AAA單參數構造器的參數類型, 這時候編譯器就自動調用這個構造器,
Time of Update: 2018-12-04
在C中可以定義全域變數,全域變數是在程式載入初始化時分配空間並進行初始化。在c代碼中定義/聲明全域變數的方式如下1. int n; 定義或者聲明(如果在其他檔案中已定義)全域變數。 2. int n = 10; 定義全域變數並初始化。 3. extern int n; 聲明在外部定義的全域變數。 4. static int n; 定義靜態全域變數 5. static int n = 10;
Time of Update: 2018-12-04
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace helloworld{ class Program { static void Main(string[] args) { Console.WriteLine("abc" + 123); //abc123 //
Time of Update: 2018-12-04
1 標頭檔裡的constconst預設為內部串連(internal linkage),僅在本檔案內可見.為了使const能夠被外部檔案所引用,必須明確把它定義成externextern const int x = 1; 這樣是是對常量做定義,而不是聲明.聲明是這樣的 extern const int i; 表示在其它地方有定義一個常量i;2
Time of Update: 2018-12-04
fun.cfloat fun(){return 1.234;}test.c#include <stdio.h>int main(){float a = fun();printf("%f\n",a);}gcc fun.c test.c zhao@ubuntu:~/unix/4$ ./a.out 1067316160.000000發現得到的結果不僅是個整數 還是個很怪異的數字 並且編譯時間沒有報錯
Time of Update: 2018-12-04
c++不僅支援指標 還添加了新的指標 int A::*p = &A::m; //成員指標用法 A a; a.*p; A *pa = new A; pa->*p; void (A::*f)() = &A::func; //成員函數指標用法A a; (a.*p)();A *pa; (a->*p)();#include "stdafx.h"#include <iostream>using namespace std;class A{public:A():m(0
Time of Update: 2018-12-04
和@陳宇翔的修行錄忙了一個星期寫了個刷票器來交軟體測試課的作業PPT不是很好傳,放到資源裡面去,PPT地址:源碼地址:http://download.csdn.net/detail/a8887396/5344103投票效果:刷票地址: (有效期間半年)http://mwangbobo.jingdianet.com/Default.aspx主要代碼:using System;using System.Collections.Generic;using
Time of Update: 2018-12-04
1 在C語言中使用宏可以提高程式效率,但宏容易出錯在宏定義中,最好給變數打上括弧,否則容易出錯.宏和普通函數是有區別的,普通函數是值傳遞或者地址傳遞,但宏是簡單地拷貝,特別參數是a++這種容易使a++多次執行2 在宏裡,沒法表示類的作用範圍.所以類中不能使用宏.轉而使用內嵌函式在類的聲明中直接寫上函數定義的預設是inline函數內嵌函式和普通函數差不多,會受到編譯器的檢查參數列表和傳回值.
Time of Update: 2018-12-04
1 可見範圍控制串連只針對在串連/裝載期間有地址的成員.全域變數,普通函數預設是外部串連(對其它檔案可見,預設的extern屬性)全域const變數除外,全域const變數預設是內部串連的(static屬性)全域變數是靜態儲存的static對全域變數的作用是改為內部串連(對其它檔案不可見), 對局部變數的作用是改變其儲存類型(由動態儲存裝置改為靜態儲存)2 靜態變數靜態儲存的變數第一次調用時(定義時)必須初始化對於內部類型,預設進行零初始化.
Time of Update: 2018-12-04
問題是這樣的:1.設計一個N個使用者的檔案系統,每個使用者最多儲存m個檔案。
Time of Update: 2018-12-04
一、
Time of Update: 2018-12-04
遠程線程技術指的是通過在另一個進程中建立遠程線程的方法進入那個進程的記憶體位址空間。我們知道,在進程中,可以通過createthread函數建立線程,被建立的新線程與主線程(就是進程啟動時被同時自動建立的那個線程)共用地址空間以及其他的資源。
Time of Update: 2018-12-04
我在程式中使用的刪除檔案夾的方法,不知對你有沒有協助 bool DeleteDirectory(AnsiString DirName) { //該函數刪除一個非空的目錄DirName SHFILEOPSTRUCT filestruct; memset(&filestruct,0,sizeof(filestruct)); //將該結構緩衝區用0填充 filestruct.hwnd=NULL;
Time of Update: 2018-12-04
前幾天 受人指點 隨手寫了這個 代碼:注 在vb中實現此功能很簡單 但是在c#中卻不是太簡單,很多方法用法不同 當時讓我 痛苦了好半天 Word.Document doc=null; Word.ApplicationClass app=new ApplicationClass(); Word.Style _style; string _XmlStr=""; object missing=System.Reflection.Missing.Value; try {
Time of Update: 2018-12-04
C++標準庫中的Allocator有一個複雜而低層次的介面[注1]。和new與delete不同,它們將記憶體配置與物件建構解耦。和malloc與free不同,它們要求你明確正在分配的記憶體的資料類型和對象數目。
Time of Update: 2018-12-04
#ifdef __cplusplus extern "C" { #endif //一段代碼 #ifdef __cplusplus } #endif 這樣的代碼到底是什麼意思呢?首先,__cplusplus是cpp中的自訂宏,那麼定義了這個宏的話表示這是一段cpp的代碼,也就是說,上面的代碼的含義是:如果這是一段cpp的代碼,那麼加入extern "C"{和}處理其中的代碼。 要明白為何使用extern
Time of Update: 2018-12-04
我想許多C程式員不願意學習Java的原因就是Java不支援指標,但是現在類似於Java的C#卻已經支援了指標,你可以使用unsafe關鍵字來告訴編譯器下面的函數或者代碼是不安全的。一旦你使用了unsafe,那麼你就可以在unsafe地區中使用指標。 程式1 using System; class nish { unsafe static void Increment(int* p) { //increment the int pointed to by p
Time of Update: 2018-12-04
美國Borland軟體公司日前宣布,推出Delphi 2006、C++Builder 2006和C#Builder 2006快速應用開發(RAD)環境的新版本。該公司稱,新版本能為軟體Team Dev減免了重複冗餘的開發工作,使其快速兼別具成本效益地交付企業級Windows應用。 Delphi 2006、C++Builder 2006和C#Builder 2006現已併入Borland Developer