Time of Update: 2018-12-03
C語言的段錯誤想必是每個人都遇到過,整理一下,以供學習之用。今天我執行了一個程式,運行了很長時間後,段錯誤了,我定位了一下,原來是fprintf的問題,具體是vfprintf的問題。Program received signal SIGSEGV, Segmentation fault. 0x0098735e in vfprintf () from /lib/libc.so.6調用棧為:#0 0x0098735e in vfprintf () from /lib/libc.so.6#1 0x0
Time of Update: 2018-12-03
最近在研究Android 2.3.3原始碼的C/C++層,需要對代碼進行一些調試,但是奇怪的是,直接添加LOGD("XXXXXXXX");,使用logcat卻看不到任何輸出,換成LOGI、LOGV、LOGW、LOGE也沒有效果。於是在網上尋找解決方案,經過幾次實驗,終於找到了,現在貼到下面備忘:第一步:在對應的mk檔案中加入:LOCAL_LDLIBS := -llog第二步:在要使用LOG的cpp檔案中加入:#include <android/log.h>#define LOGD(.
Time of Update: 2018-12-03
在iphone程式中會大量看到@selector這樣的用法。<<iphone開發基礎>花了很大一個篇幅來解析這個文法,但是不知是翻譯問題,還是解釋過細,不大看得懂,很是不給力.直到程式用這個文法,並且仔細看了一些解析文章。才明白這一文法。 簡而言之,你可以理解
Time of Update: 2018-12-03
1.環境:2.代碼:/* *wuxiuwen *input date, the date of this year is calculated which day. *輸入一個日期(年月日),計算是這一年中的第幾天 */#include<stdio.h>int dm(int year,int month, int day){ int flag=0; if((year%4==0 && year%100!=0) || (year%400==1
Time of Update: 2018-12-03
13.3 檔案的開啟與關閉 檔案在進行讀寫操作之前要先開啟,使用完畢要關閉。所謂開啟檔案,實際上是建立檔案的各種有關資訊,並使檔案指標指向該檔案,以便進行其它操作。關閉檔案則斷開指標與檔案之間的聯絡,也就禁止再對該檔案進行操作。在C語言中,檔案操作都是由庫函數來完成的。在本章內將介紹主要的檔案操作函數。 13.3.1 檔案的開啟(fopen函數) fopen函數用來開啟一個檔案,其調用的一般形式為: 檔案指標名=fopen(檔案名稱,使用檔案方式); 其中,
Time of Update: 2018-12-03
1.在C語言中加了static 的變數或方法,表明這個變數或方法只能在本檔案代碼塊中訪問,外部的檔案無法訪問它(因為連結程式把它當作內部連結)static 變數存放在欄位存取區內(同理方法內部的static 變數也是存放在這,而不是存放在stack中,所以方法執行時,它只初始化一次).例如:static int value=20;static int fun();這種定義說明它們的存取權限只在本檔案塊內2.在C++中static
Time of Update: 2018-12-03
標題有點長,但還是能看明白的吧。最近做一個S60項目,需要自己設計清單控制項,捲軸和分頁都要從頭開始類比,比較頭疼。在做分頁時不免需要用到ceil()函數,而Symbian的Class Math沒有提供ceil()函數,於是只能藉助標準C。藉此機會說明一下如何在S60項目中使用標準C的庫函數。 1.SDK文檔中查知ceil:Location: libc/math.hceil()IMPORT_C double ceil(double); 2.開啟工程的mmp檔案,在SYSTEMINCLUDE
Time of Update: 2018-12-03
linux下:ctrl-c 發送 SIGINT 訊號給前台進程組中的所有進程。常用於終止正在啟動並執行程式。ctrl-z 發送 SIGTSTP 訊號給前台進程組中的所有進程,常用於掛起一個進程。ctrl-d 不是發送訊號,而是表示一個特殊的二進位值,表示 EOF。ctrl-/ 發送 SIGQUIT 訊號給前台進程組中的所有進程,終止前台進程並產生 core 檔案。Key Function Ctrl-c Kill foreground process Ctrl-z Suspend
Time of Update: 2018-12-03
一個由c/C++編譯的程式佔用的記憶體分為以下幾個部分 1、棧區(stack)— 由編譯器自動分配釋放 ,存放函數的參數值,局部變數的值等。其操作方式類似於資料結構中的棧。 2、堆區(heap) — 一般由程式員分配釋放, 若程式員不釋放,程式結束時可能由OS回收 。注意它與資料結構中的堆是兩回事,分配方式倒是類似於鏈表,呵呵。 3、全域區(靜態區)(static)—,全域變數和靜態變數的儲存是放在一塊的,初始化的全域變數和靜態變數在一塊地區,
Time of Update: 2018-12-03
題目:編寫一個程式,用於處理c/c++來源程式,將來源程式中的注釋部分去掉輸入:c/c++檔案名稱輸出:處理後的程式源檔案程式虛擬碼如下:c1,c2:chartag:inta:讀入一個字元存入c1if tag==0 //讀入字元不是注釋 if c1=='/' //可能是注釋標記 讀入一個字元存入c2 if c2=='*' //為/**/注釋的開頭 tag = 2 else if c2=='/' //為//注釋的開頭 tag = 1 else
Time of Update: 2018-12-03
CFILES := $(wildcard *.c)#過濾部分c檔案filters := xx.cCFILES := $(filter-out $(filters),$(CFILES))TARGETS = $(patsubst %.c, %.cgi, $(CFILES))#組建目錄ODIR := ./# 編譯參數CFLAGS := -m32#連結參數LDFLAGS := -L/usr/local/ -lsqlite3 -lsybdb# 定義編譯規則define
Time of Update: 2018-12-03
from:http://blog.csdn.net/piaojun_pj/article/details/5991968
Time of Update: 2018-12-03
from:http://kb.cnblogs.com/page/122430/ C++這門語言從誕生到今天已經經曆了將近30個年頭。不可否認,它的學習難度都比其它語言較高。而它的學習難度,主要來自於它的複雜性。現在C++的使用範圍比以前已經少了很多,java、C#、python等語言在很多方面已經可以代替C++。但是也有很多地方是其他語言完全無法替代的,主要集中在需要運行效率比較高的行業,比如遊戲、高效的伺服器。 現在學習java、C#等語言的人數遠遠高於C++,主要是C++的入門門檻太高,可
Time of Update: 2018-12-03
轉自:http://hi.baidu.com/onejw/item/f34390c997cdc226a1b50aehttp://www.cocoachina.com/ask/questions/show/57217http://www.cnblogs.com/uyoug321/archive/2010/12/11/1903499.htmlXcode中支援C、C++、Object-C3種語言的混編Xcode中支援C、C++、Object-C3種語言的混編,那麼如果想讓編譯器混編,只需要將實作類別的
Time of Update: 2018-12-03
今天去一家公司參加了筆試,個人感覺有幾道題挺有意思的,拿出來和大家分享一下:1、void main(){unsigned char i =0;char a[1024] ={0};for(i = 0;i<1024;i++){printf("a[%d]:0x%02x\n",i,a[i]);}}輸出結果是什嗎?答案應該是:1、死迴圈,然後是a[0]:0x00a[1]:0x00a[2]:0x00…… a[255]:0x00 注意i的類型,i的最大值是255,所以會一直迴圈下去。 2、void
Time of Update: 2018-12-03
#include <string.h>#include <ctype.h> char * str_trim_len(char * input, int len){ char *head=input; char *tail=input + (len - 1); if (len <=0) return NULL; while (len >0 && !(isgraph(*head))) {
Time of Update: 2018-12-03
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdarg.h>#include <string.h>#include <time.h>#include <errno.h>
Time of Update: 2018-12-03
一、位元運算符C語言提供了六種位元運算符:& 按位與| 按位或^ 按位異或~ 取反<< 左移>> 右移1. 按位與運算按位與運算子"&"是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。例如:9&5可寫算式如下: 00001001 (9的二進位補碼)&00000101 (5的二進位補碼) 00000001 (1的二進位補碼)可見9&5=1。
Time of Update: 2018-12-03
一、互斥鎖互斥量從本質上說就是一把鎖, 提供對共用資源的保護訪問。 1. 初始化: 在Linux下, 線程的互斥量資料類型是pthread_mutex_t. 在使用前, 要對它進行初始化: 對於靜態分配的互斥量, 可以把它設定為PTHREAD_MUTEX_INITIALIZER, 或者調用pthread_mutex_init. 對於動態分配的互斥量, 在申請記憶體(malloc)之後, 通過pthread_mutex_init進行初始化,
Time of Update: 2018-12-03
問題來源: http://deshell.blog.163.com/blog/static/14095443420108165240503/?fromdm&isFromSearchEngine=yes http://blog.csdn.net/brooksychen/archive/2007/05/24/1624753.aspx http://topic.csdn.net/u/20071207/13/ba649a55-df48-4a19-b8ce-7da3