Time of Update: 2018-12-05
講講volatile的作用(轉)一個定義為volatile的變數是說這變數可能會被意想不到地改變,這樣,編譯器就不會去假設這個變數的值了。精確地說就是,最佳化器在用到這個變數時必須每次都小心地重新讀取這個變數的值,而不是使用儲存在寄存器裡的備份。下是volatile變數的幾個例子: 1). 平行裝置的硬體寄存器(如:狀態寄存器) 2). 一個中斷服務子程式中會訪問到的非自動變數(Non-automatic variables) 3). 多線程應用中被幾個任務共用的變數
Time of Update: 2018-12-05
未加extern “C”聲明時的編譯方式 首先看看C++中對類似C的函數是怎樣編譯的。 作為一種物件導向的語言,C++支援函數重載,而過程式語言C則不支援。函數被C++編譯後在符號庫中的名字與C語言的不同。例如,假設某個函數的原型為: void foo( int x, int y );
Time of Update: 2018-12-05
在C/C++中處理Python對象時,對引用計數進行正確的維護是一個關鍵問題,處理不好將很容易產生記憶體流失。Python的C語言介面提供了一些宏來對引用計數進行維護,最常見的是用 Py_INCREF()來增加使Python對象的引用計數增1,用Py_DECREF()來使Python對象的引用計數減1。2.3 資料類型 Python定義了六種資料類型:整型、浮點型、字串、元組、列表和字典,在使用C語言對Python進行功能擴充時,首先要瞭解如何在C和Python的資料類型間進行轉化。2.3.1
Time of Update: 2018-12-05
轉載:1、輸入。兩種方法:cin 被用來輸入字元序列值時,它通常與函數getline 一起使用,方法如下:cin.getline ( char buffer[], int length, char delimiter = ' \n'); 這裡buffer 是用來儲存輸入的地址(例如一個數組名),length 是一個緩衝buffer 的最大容量,而delimiter 是用來判斷使用者輸入結束的字元,它的預設值(如果我們不寫這個參數時)是分行符號newline character
Time of Update: 2018-12-05
class String{ public: String(const char *str = NULL); // 普通建構函式 String(const String &other); // 拷貝建構函式 ~ String(void); // 解構函式 String & operator =(const String &other);
Time of Update: 2018-12-05
二維數組的儲存方式是和一維數組沒什麼區別,但是用二維數組做參數,它的形參該怎樣寫?要注意的是:函數中的形參其實就相當於一個聲明,並不產生記憶體配置,形參的目的就是要讓編譯器知道函數參數的資料類型。正確的是:void Func(int array[3][10]); void Func(intarray[][10]); 可以省略第一維的大小,錯誤的是:void Func(intarray[][]).這樣的用法只能在初始化時可以用;這樣寫也是錯誤:void Func(const int
Time of Update: 2018-12-05
13.3 檔案的開啟與關閉 檔案在進行讀寫操作之前要先開啟,使用完畢要關閉。所謂開啟檔案,實際上是建立檔案的各種有關資訊,並使檔案指標指向該檔案,以便進行其它操作。關閉檔案則斷開指標與檔案之間的聯絡,也就禁止再對該檔案進行操作。 在C語言中,檔案操作都是由庫函數來完成的。在本章內將介紹主要的檔案操作函數。 13.3.1 檔案的開啟(fopen函數) fopen函數用來開啟一個檔案,其調用的一般形式為: 檔案指標名=fopen(檔案名稱,使用檔案方式); 其中,
Time of Update: 2018-12-05
[轉]http://www.cnblogs.com/grapeot/archive/2010/01/25/1656240.html 由於曆史原因,很多時候我們的代碼並不完全是使用.NET寫成的。這時候和以往C++代碼的混合編程就顯得相當重要了。最近碰到了這樣的問題,將方法簡要記述如下。 調用簡單的C++函數 要在C#代碼中調用C++函數,大體的思路是這樣的:首先將C++函數寫成DLL形式的庫,然後在C#中匯入DLL中的函數進行調用。具體的代碼類似這樣: C++代碼:1
Time of Update: 2018-12-06
C++ 隨機數產生 標準庫<cstdlib>(被包含於<iostream>中)提供兩個協助產生偽隨機數的函數:函數一:int rand(void);從srand (seed)中指定的seed開始,返回一個[seed, RAND_MAX(0x7fff))間的隨機整數。函數二:void srand(unsigned seed);參數seed是rand()的種子,用來初始化rand()的起始值。可以認為rand()在每次被調用的時候,它會查看:1)
Time of Update: 2018-12-06
用LaTeX寫論文時,插入C++原始碼有專門的宏包,方法如下: 1 \usepackage{listings} 2 3 \lstset{language=C++}%這條命令可以讓LaTeX排版時將C++鍵字反白 4 5 \lstset{breaklines}%這條命令可以讓LaTeX自動將長的程式碼換行排版 6 7 \lstset{extendedchars=false}%這一條命令可以解決代碼跨頁時,章區段標頭,頁首等漢字不顯示的問題 8 9 \begin{lstlisting}10
Time of Update: 2018-12-06
上一次我學習了在VC6.0下成功的運行了第一個C程式,實在是感覺到興奮.但是關於編譯,連結等步驟,VC6.0已經傻瓜化的幫我做了,我感覺到確實很方便,但是這樣才給我帶來了1個問題,就是其中的步驟只是看了書有所瞭解,自己呢,沒有實踐過,所以感覺還不是自己的東西。所以我決定自己用記事本寫個程式,但是自己動手實現編譯,連結等VC幫我做了的事情。 首先,我用記事本寫上那個helloworld程式。#include<stdio.h>int main(void){
Time of Update: 2018-12-06
最近在寫一套基礎類庫用於SG解包blob欄位統計,在寫完了所有程式編譯時間遇到一個鬱悶無比的錯誤: MailBox.o(.text+0x124): In function `CMailBox::CMailBox[not-in-charge](CMmogAnalyseStatManager*)': ../src/MailBox.cpp:27: undefined reference to `CSgAnalyseStatBase::~CSgAnalyseStatBase
Time of Update: 2018-12-06
說起來很有意思,自認為對C語言理解得還是比較深刻的。但居然到今天才知道有個strtok函數,試用了一下突然感慨以前做了多少重複勞動。每次需要解析設定檔,每次需要分割字串,居然都是自己去分割字串,既累人又容易出錯。感概繼續學得不夠全面啊!這裡引用一段strtok用法:The strtok() function returns a pointer to the next "token" in str1, where str2 contains the delimiters that
Time of Update: 2018-12-06
public void TestMethod2() {// System.DateTime.ParseExact(@"Wed Oct 12 00:00:00 UTC+0800 2011",); DateTime datetime = DateTime.Now; IFormatProvider cur = new CultureInfo("en-US");
Time of Update: 2018-12-06
上網搜尋了一下,找到了一個簡單的ArcEngine中清空點圖層地物的方法,運行正常。貼在這裡備忘。和上一篇日誌載入圖層和添加地物點結合起來就是個完整的添加刪除點的代碼了。 代碼Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->private void DeletePoints(){ IFeatureLayer layer =
Time of Update: 2018-12-06
http://msdn.microsoft.com/zh-cn/library/hkkb40tf(VS.90).aspx更新:2007 年 11 月即使使用者不單擊按鈕,您也可以使用 PerformClick 方法以編程方式引發按鈕的 Click 事件。以下樣本示範如何在程式內調用按鈕的 click 事件。當單擊 button2 時,button1 的 click 事件也被觸發。在程式中使用按鈕在[檔案]
Time of Update: 2018-12-06
繼承自System.Globalization.ChineseLunisolarCalendar,實現了很多黃曆上的東東,如節氣計算、節日、日月食、納音五行、七十二候、日祿、吉神方位、星宿等,具體看注釋。參照了很多資料和JavaScript,方法名亂的一踏糊塗,那些東東太難找對應的英文單詞了。學習編程沒有多長時間,大家有空就看看,如有錯誤還往告訴我。代碼太長,本來想直接放上來,結果在弄死兩次後還是打包上傳的好。http://files.cnblogs.com/jianghanxia/Chines
Time of Update: 2018-12-06
這兩天在編寫多線程下載組件,本來想從網上下載一個,但是沒有合適的,都是寫的比較簡單的執行個體代碼,而且沒有抽象成單獨組件,要不就是代碼寫的很亂,不好修改和擴充!於是就自己根據網上的執行個體寫了一個。花了二三天時間完成了一個主體,主要實現了多線程下載,直接儲存到最後的檔案中,而不是先儲存到單個檔案,最後再合并。下一步實現斷點續傳。但是遇到一個很奇怪的問題,線程二個以上的時候哪麼大於二個線程的線程都會在HttpWebRequest的GetResponse的地方發送逾時錯誤,但是在本地用本地用HTTP
Time of Update: 2018-12-06
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;using System.Net;namespace MacApp{ public partial
Time of Update: 2018-12-06
產生面之前的:產生為面之後的:從線產生面的方法代碼:/// <summary>/// 通過線建立面/// </summary>/// <param name="pPolyline">線</param>/// <returns>面</returns>IPolygon ConstructPolygonFromPolyline(IPolyline pPolyline){ IGeometryCollection pPolygo