Time of Update: 2018-12-04
文章內容參考自21天學通linux c編程主要函數:開啟: fopen fdopen freopen關閉: fclose讀取: getc fgets fread寫入: putc fputc fputs fwrite讀取字元#include <stdio.h>#include <errno.h>main(){ FILE * fp; extern int errno; char file[]="/root/a1.txt";
Time of Update: 2018-12-04
代碼來自《linux c編程從入門到精通》代碼分為伺服器和客戶機 基本的操作都有了伺服器建立sock並綁定後等待接收用戶端接受使用者輸入並發給伺服器 伺服器收到後返回給用戶端使用時先運行server 然後運行client 在client端輸入字串 並斷行符號就能看到效果了伺服器外加unistd.h和 string.h /*ex8-7.c*/#include <sys/types.h>#include <sys/socket.h>#include
Time of Update: 2018-12-04
先看一例子: class base { public: virtual void f() const {}; }; class d1 : virtual public base {}; class d2 : virtual public base {}; class derived : public d1,
Time of Update: 2018-12-04
1. 僅有一個虛函數的類 class C010{ virtual void foo(){};}; // sizeof = 4 輸出結果為:The size of C010 is 4The detail of C010 is 50 d0 46 00 當一個類中有虛函數時,編譯器會為該類產生一個虛函數表,並在它的每一個對象中插入一個指向該虛函數表的指標,通常這個指標是插在對象的起始位置。所謂的虛函數表實際就是一個指標數組,其中的指標指向真正的函數起始地址。在本次的測試輸出中,
Time of Update: 2018-12-04
***數組和指標是如何訪問的***標準規定賦值符必須用可修改的左值(為了與數組名區分,數組名也用於確定對象在記憶體中的位置,也是左值,但它不能作為賦值的對象)作為它左側的運算元,而其右側的運算元是地址的內容(右值)。數組和指標的差別:(1)數組只需將起始地址加上位移地址,再解除引用既可取得數組中的各個元素;而指標需先將自身解除引用以擷取所指向對象的地址,再解除引用才可取得所指向對象的內容;(a)對數組下標的引用:char a[9] = "abcdefgh";char c;c = a[i];//
Time of Update: 2018-12-04
之前搞過這個中英文與UNICODE十六進位字串的互轉,但是發現有點小問題。現在重新搞了一個,測試中暫時沒有發現什麼問題。先記錄下來。我嘗試使用過MultiByteToWideChar和WideCharToMultiByte來實現這個功能,但是發現不行。也就是無法實現如:中文English --> 4e2d65870045006e0067006c006900730068和4e2d65870045006e0067006c006900730068 --> 中文English這麼一個轉換,
Time of Update: 2018-12-04
先看下簡單的初始代碼:注意其編譯運行後的結果。root@xuanfei-desktop:~/cpropram/2# cat global.h //標頭檔#ifndef CLOBAL_H#define GLOBAL_H#include <stdio.h>int funca(void);int funcb(void);#endifroot@xuanfei-desktop:~/cpropram/2# cat funca.c //函數a#include "global.h"int
Time of Update: 2018-12-04
step 1:定義TimerSystem.Windows.Forms.Timer mTimer = new System.Windows.Forms.Timer();step 2:初始化定時器mTimer.Tick += new EventHandler(TimerEventProcessor); // 設定定時器處理函數 mTimer.Interval = 2000; // 定時時間 mTimer.Enabled = false;
Time of Update: 2018-12-04
這些是發現的比較好的google+百度會有更多。。。。linux c一站式學習 有pdf http://blogimg.chinaunix.net/blog/upfile2/101026210032.pdf 這個是文庫串連 http://wenku.baidu.com/view/724bfaa9dd3383c4bb4cd234.htmllinux c編程實戰 pdf可google搜一下 博文http:
Time of Update: 2018-12-04
文章代碼來自於《嵌入式linux應用程式開發 標準教程》第一個執行個體實現了伺服器和用戶端的TCP通訊第二個執行個體是在第一個的基礎上使用了select函數實現多工 而不是一直阻塞伺服器代碼/*server.c*/#include <sys/types.h>#include <sys/socket.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include
Time of Update: 2018-12-04
原始碼來自於TI開發板在ARM上實現shell命令解析 第一步:構建命令實現函數和命令表1,定義結構體 和命令表typedef int (*pfnCmdLine)(int argc, char *argv[]);//*****************************************************************************////! Structure for an entry in the command list table.////******
Time of Update: 2018-12-04
1.當傳遞較大的資料結構作為參數時,用引用或者指標作為函數參數可以節省 一個複製的過程,提高效率。看別人代碼經常這樣使用。想想為啥void Fun1(const classA&);void Fun2(const classA*);如果ClassA是大型的資料結構或者類,不使用&或者* 傳遞參數就會把實參賦值給一個臨時的形參,將會浪費一些效能,使用指標或者引用傳遞將傳遞的是本身,提高了效率。至於 const 嘛,不想改變其值。所以盡量這樣使用還是有好處的。 2.沒想到呢。
Time of Update: 2018-12-04
所謂的物件導向及繼承、多態等等只是在語言層面的實現,機器在執行程式時根本就不知道這些。這篇部落格的目的是探討一下,編譯器對C++虛函數的實現。先探討最簡單的情況:代碼如下 vtable.cpp:#include <stdio.h>class Base{public: Base(){ puts("Base()"); } virtual void fun1() { puts("fun1()"); } virtual
Time of Update: 2018-12-04
P.J Plauger的"The Standard C Library"一書的Chapter0的章後練習中有這樣的一道題:編寫一個包含如下一行語句的正確的程式: x: ((struct x*)x)->x=x(5); 並描述這行語句中x的5種截然不同的use,這裡其實涉及到這麼一個知識或者說概念:C語言的命名空間(namespace),在"C語言參考手冊"中還被稱作: overloading class。 這 裡namespace,並非C++中的那個keyword
Time of Update: 2018-12-04
try catch finally簡單的三個關鍵字,其處理流程卻較為複雜,下面先分各種情況討論,最後得出結論,並提出使用建議。1 沒有發生異常的情況class Program { static void Main(string[] args) { try { //throw new Exception("my exception");
Time of Update: 2018-12-04
虛函數是C++實現多態的關鍵,沒有虛函數,C++只能是OB,不能完成OO。對於VC++中虛函數的實現機制,有很多文章,我看過的是陳浩寫的,連結如下:http://blog.csdn.net/haoel/article/details/1948051。總覺得還是有些不太清楚的,所以自己做了進一步的實驗,記錄下來以供參考。本文介紹的是沒有繼承情況下,帶有虛函數的類在記憶體中布局,以及其執行個體(對象)記憶體布局。 1.源碼#include <iostream>#include
Time of Update: 2018-12-04
轉自的部落格地址:http://blog.sina.com.cn/s/blog_79b802790100q8tt.html 終於體驗到在Linux下使用Asm 和 C的混合編寫產生-elf檔案。 在程式中的函數相互調用顯然使用的是堆棧進行。而中斷 int 0x80 卻沒搞清楚。可以明確的是這是個BIOS中斷可以實現多種功能,使用eax選擇功能,當eax=4時是螢幕輸出,ebx為輸出個數,ecx是字元長度,edx則為字元內容。參數的傳遞遵循後邊的參數先入棧 foo.asm
Time of Update: 2018-12-04
轉自:http://www.duote.com/tech/4/11911.html C++學習從零開始(一)出處:2345軟體大全時間:2011-04-25人氣:64441我來評論教程貼士:本文的中篇已經介紹了虛的意思,就是要間接獲得,並且舉例說明電視機的頻道就是讓人間接獲得電視台頻率的,因此其從這個意義上說是虛的,因為它可能操作失敗--某個頻道還未調好而導致一片雪花。 本文的中篇已經介紹了虛的意思,就是要間接獲得,並且舉例說明電視機的頻道就是讓人間接獲得電視台頻率的,因此其從這個意義上說是虛
Time of Update: 2018-12-04
轉自:http://www.cnblogs.com/tracylee/archive/2012/12/18/2822431.html在實際生產中,遇到一個複雜的類,如果能看出這個類的記憶體模型結構,那麼以後的操作基本就沒有難度的;所以說,學會分析一個類的記憶體模型,是每一個C++程式員必須要會的知識。(1)C++類封裝和C中的結構體的區別C++的類封裝是在C語言中的結構體的基礎上構建起來的,C結構體只允許存在資料,而不會存在對資料的操作。C++語言中延承C語言中的結構體,但增加的對資料的操作,即
Time of Update: 2018-12-04
導讀: