目前分類:C (17)

瀏覽方式: 標題列表 簡短摘要

進入C語言都有一道門檻,第一個最基本的是指標,之後還有二維陣列、指標陣列,學著學著又發現紥根基的工作不能少...

以下正轉載來的,轉自Edison.X. Blog,寫的相當不錯。

怎麼學c語言、怎麼挑書、要挑什麼書",這個問題聽過蠻多遍了,提供自己學習 C/C++ 的歷程讓各位參考。以下的說明都是以個人主觀的立場,當然我不是什麼大師,這些都參考就好。由於當初筆者接觸時,就是 C ,若想學其它像是 VB, JAVA, C# 等程式語言,這篇文章仍可給予一些幫助與參考。

lver76 發表在 痞客邦 留言(1) 人氣()

指令表示法

li $s0, 1 指示將 s0 暫存器的數值設定為 1

lver76 發表在 痞客邦 留言(0) 人氣()

Q1:Compile的時候,明明有定義某個data type, compiler確一直不認得。

A:Clean all 再重新compile。 


lver76 發表在 痞客邦 留言(0) 人氣()

這是補充的: C 信徒的摩西十戒

以下是網路上轉來的~

by Khoguan Phuann

lver76 發表在 痞客邦 留言(0) 人氣()

1. struct的巨大作用
  面對一個人的大型C/C++程式時,只看其對struct的使用情況我們就可以對其編寫者的編程經驗進行評估。因為一個大型的C/C++程式,勢必要涉及一些(甚至大量)進行資料組合的結構體,這些結構體可以將原本意義屬於一個整體的資料組合在一起。從某種程度上來說,會不會用struct,怎樣用struct是區別一個開發人員是否具備豐富開發經歷的標誌。

lver76 發表在 痞客邦 留言(0) 人氣()

根本沒有什麽文件結束符。 如果有的話空文件不是還要占一個字節的結束符? EOF是什麽?它就是-1。它不過是C例程裏的一個常量,當碰到文件結尾時,就返回-1。 問題的根本是你錯誤的認為磁盤的文件結尾還有一個字符專門表示文件的結束,呵呵,沒有這個字符,你想啊,每讀一個字符還要比較一下它是否等于“空想的文件結束符“,是不是太低效了點呢。那是如何判斷文件是否已經結束的?中斷、異常。


lver76 發表在 痞客邦 留言(0) 人氣()

規則是以structure裡最佔記憶体空間的資料型態為單位,比如int佔 4 bytes,當不滿 4 bytes 時,遇到另一種型態就把記憶体填滿至 4 bytes,從下一個 4 bytes 開始放下一個變數。

#include <iostream>

lver76 發表在 痞客邦 留言(2) 人氣()

以byte為單位,把記憶體的內容倒過來排

void memRev_fun(void* memBuf, int byteLength)
{

lver76 發表在 痞客邦 留言(0) 人氣()

typedef void (*function_TYP)(void);

static function_TYP virtual_function_name=0;

lver76 發表在 痞客邦 留言(0) 人氣()

  • Nov 09 Sun 2008 16:16
  • 觀念

C/C++ 的 Header file 不適合在裡面宣告實體物件的。因為做為一個 header file 可能會有很多程式檔含入(include)該Header file。如果你宣告了一個物件在裡面,編譯器會給你一個難堪的"重覆定義"的錯誤訊息。

通常的做法是,你應宣告全域物件在各自所屬的程式檔中,而其它要用到該物件的程式則宣告該全域物件為 external 即可。

lver76 發表在 痞客邦 留言(0) 人氣()

  • Nov 09 Sun 2008 16:15
  • 指標

指针的分类
  (1)近指针(near):
  近指针为16位指针,它只含有地址的偏移量部分。近指针用于不超过64K 字节的单个数据段或代码段。在微、小和中编译模式下产生的数据指针是近指针(缺省状态);在微、小和中编译模式下产生的码指针(指向函数的指针)是近指针(缺省状态)。

lver76 發表在 痞客邦 留言(0) 人氣()

sprintf和snprintf都是以\0結尾,在轉換字串時要注意,遇到0就會被視為結束,造成轉換不完全。

宣告型態時,用C的標準定義,compiler比較精確,若用自定型態,如

lver76 發表在 痞客邦 留言(0) 人氣()

Q:When create a task, what does the stack size mean?

A:Stack size of a task means any function which of the task can't bigger than the stack szie.

lver76 發表在 痞客邦 留言(0) 人氣()

1、argc 與 argv為C語言的關鍵字,是專門用在命令列的參數名。

2、argc是argument count(參數總和)的縮寫,代表包括指令本身的參數個數。

lver76 發表在 痞客邦 留言(0) 人氣()

從這轉載來的

1,防止一個頭檔被重複包含

lver76 發表在 痞客邦 留言(0) 人氣()

  • Nov 09 Sun 2008 16:07
  • Pragma

在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和 C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。
其格式一般为: #Pragma Para
其中Para 为参数,下面来看一些常用的参数。

lver76 發表在 痞客邦 留言(0) 人氣()

結論是用volatile宣告的變數,每次都會去ram裡面去取它真正的值。
沒用volatile宣告的變數,直接去cache裡取值,此時有可能ram裡面此變數真正的值已被更改,造成資料不同步。

lver76 發表在 痞客邦 留言(0) 人氣()