Time of Update: 2018-12-03
//測試函數指標類型的定義,和,用法//何為數指標類型//何為指向數指標類型的類型 #include <stdio.h>typedef unsigned int u32;//自訂一個新的定義函數類型 typedef int (*idtt_receive_func_t)(void *data, u32 len);//傳回值為int,參數為data,len的函數類型 //如果int後有*,表示返回的是指標 idtt_receive_func_t
Time of Update: 2018-12-03
1. 使用case的有限狀態機器//使用switch/case或者if/else實現的基於狀態機器(FSM)的密碼鎖//只有正確輸入密碼 2479 才能解鎖 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef enum{ STATE0 = 0, STATE1, STATE2, STATE3, STATE4, }STATE; int main()
Time of Update: 2018-12-03
#include <stdio.h>/*exp(x) = 1 + (x^1)/1! + (x^2)/2! + ... + (x^n)/n! + o(n)e = exp(1)*//*factorial -求n的階乘*/long factorial(long n){if(n == 0 || n == 1)return 1;elsereturn n*factorial(n-1);}/*power -算x的y次方*/long power(long x, long y){if(y ==
Time of Update: 2018-12-03
/*label真的是一個挨著一個啟動並執行,只有goto可打斷這個執行順序每個label至少要有一條語句,哪怕是空語句.*/#include <stdio.h>void main(){int a=0;int b;//printf("hello");lable_000://printf("label_000\n"); ;lable_001:printf("hello, lable_001\n");lable_002:a++;lable_003:if(a<5)goto lable_
Time of Update: 2018-12-03
#include <stdio.h>#include <string.h>/* 以字元ch為界分離字串s2為前後兩部分 */char *_string_parse(char *s1, char *s2, char ch){while(*s2 == ch) s2++;while(*s2) {if (*s2 == ch) {while (*++s2 == ch);break;}*s1++ = *s2++;}*s1 = '/0';return s2;}/*
Time of Update: 2018-12-03
前置處理器(Preprocessor)1. 用預先處理指令#define 聲明一個常數,用以表明1年中有多少秒(忽略閏年問題)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在這想看到幾件事情:1). #define 文法的基本知識(例如:不能以分號結束,括弧的使用,等等)2). 懂得前置處理器將為你計算常數運算式的值,因此,直接寫出你是如何計算一年中有多少秒而不是計算出實際的值,是更清晰而沒有代價的。3).
Time of Update: 2018-12-03
1, 一重指標1.1 作函數參數用可以傳入,也可以傳出1.2 作函數傳回值用2. 二重指標2.1 做二維資料使用比如存一篇文章(多少行,多少列)主要是儲存兩級資料2.2 做函數參數可以用來分配記憶體,然後記錄在參數指向的位置.#include <stdio.h>#include <string.h>//作為記錄指標的更改使用, 比如分配記憶體 int ialloc (char **p, int size){*p = (char *)malloc(size);if (*p
Time of Update: 2018-12-03
標籤一般放在函數的尾部, 它會被執行, 很多標籤的時候, 標籤是按照從上到下的順序執行的.goto可以讓代碼主動的跳轉到標籤定義的代碼處繼續執行.#include <stdio.h>int main(){int i, j;for ( i = 0; i < 10; i++ ){printf( "Outer loop executing. i = %d\n", i );for ( j = 0; j < 3; j++ ){printf( " Inner loop
Time of Update: 2018-12-03
/****************************************************************************************** 鍵盤3*4掃描程式 入口參數: 出口參數: 鍵碼:ee de be,7e,ed,dd,bd,7d,eb,db,bb,7b 0 1 2 3 4 5 6 7 8 9 a b **************************************************
Time of Update: 2018-12-03
#include <stdio.h>#include <stdarg.h>//這個標頭檔是為變參數服務的//未使用stdarg.h版本的可變參數函數---求和//首參數i表示除了第一個參數外, 剩下的參數的總個數, 首參數不參加求和long sum(int i, ...){//指標p指向第二個參數的地址int *p, j;long s = 0;p = &i+1;for (j=0;j<i;j++)s += p[j];return
Time of Update: 2018-12-03
被extern "C"修飾的變數和函數是按照C語言方式編譯和串連的。 未加extern “C”聲明時的編譯方式,C++中對類似C的函數是怎樣編譯的? 作為一種物件導向的語言,C++支援函數重載,而過程式語言C則不支援。函數被C++編譯後在符號庫中的名字與C語言的不同。例如,某個函數的原型為: void foo( int x, int y
Time of Update: 2018-12-03
這裡有兩種情況下的區別。(1)C的struct與C++的class的區別。(2)C++中的struct和class的區別。 在第一種情況下,struct與class有著非常明顯的區別。C是一種過程化的語言,struct只是作為一種複雜資料類型定義,struct中只能定義成員變數,不能定義成員函數(在純粹的C語言中,struct不能定義成員函數,只能定義變數)。例如下面的C代碼片斷: struct Point { int x; /
Time of Update: 2018-12-03
#include <reg51.h>sbit BT_SND =P1^0;sbit BT_REC =P1^1;/********************************************** IO 口類比232通訊程式 使用兩種方式的C程式 佔用定時器0 **********************************************/ #define MODE_QUICK #define F_TM F0 #define
Time of Update: 2018-12-03
using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Net.Mail;u
Time of Update: 2018-12-03
/// <summary> /// 壓縮檔 /// </summary> /// <param name="patch">被壓縮檔或其所在目錄</param> /// <param name="rarPatch">壓縮後檔案存放目錄</param> /// <param
Time of Update: 2018-12-03
插入、刪除結點的代碼有點多,但這樣提高了代碼的可讀性,且不增加時間複雜度,不會影響程式效能#include <iostream>using namespace std;template<typename T>class CList;template<class T>class Node{friend CList<T>;private:T m_data;Node *m_pNext;};template<class T>class
Time of Update: 2018-12-03
Time of Update: 2018-12-03
感覺用C++中的建構函式、解構函式等類的特點來描述一些資料結構更加易讀,更加合理,便捷。但有一個問題,編譯器不支援模板的分離編譯,很不舒服 #include <iostream>using namespace std;template<class T>class CArray{public:CArray(const int &iMax);CArray();~CArray();void Create(const int &iMax);void
Time of Update: 2018-12-03
C# FontStyle枚舉的使用 FontStyle同時是bold,Underline,Strikeout風格:FontStyle style = FontStyle.Regular; style |= FontStyle.Bold; style |= FontStyle.Italic;如果是去掉某一種的話是:style-=FontStyle.Bold;//將String轉換成FontStyle枚舉FontStyle fsStyle =
Time of Update: 2018-12-03
C語言位操作--底層開發程式猿得好好收藏 在電腦程式中,資料的位是可以操作的最小資料單位,理論上可以用“位元運算”來完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做資料變換使用,但是,靈活的位操作可以有效地提高程式啟動並執行效率。C語言提供了位元運算的功能, 這使得C語言也能像組合語言一樣用來編寫系統程式。特別是在通訊及底層開發過程中,不可避免的接觸到一些與位操作的問題,好好牢記這些知識,可以讓你更好的理解這些代碼。 位元運算符C語言提供了六種位元運算符: & 按位與 |