關於C語言中switch的第一個case上面寫程式碼的愚蠢之舉
今天在開發貸記卡ATM前置時,在ATMCommCCPS.c中寫下了如下程式碼
switch (atoi(cvtXml[i].txn_num))
{
ret = -1;
HtLog(gsLogFile,HT_LOG_MODE_DEBUG,__FILE__,__LINE__, "1atoi(cvtXml[i].txn_num = %d", atoi(cvtXml[i].txn_num));
HtLog_TxnXml(atoi(cvtXml[i].txn_num), pstPreDef);
HtLog(gsLogFile,HT_LOG_MODE_DEBUG,__FILE__,__LINE__, "2atoi(cvtXml[i].txn_num = %d", atoi(cvtXml[i].txn_num));
case 1171:
// 可用額度資訊查詢
ret = proc1171res((stCcps15020Xml *)pstPreDef, pstIpcIntTxnReq, pstIpcIntTxnRes);
break;
case 1181:
// 賬戶資訊查詢
ret = proc1181res((stCcps12000Xml *)pstPreDef, pstIpcIntTxnReq, pstIpcIntTxnRes);
break;
case 1191:
// 申請進度查詢
//case ...:
default:
HtLog(gsLogFile, HT_LOG_MODE_NORMAL, __FILE__, __LINE__, "not catch the xml struct by txn num!");
break;
}
除錯了一上午在日誌中也沒發現諸如cvtXml[i].txn_num這樣的列印,百思不得其解,整了大半天才發現,原始在switch的第一個case上寫程式碼雖然能夠編譯過,但是卻不會執行,我累哦個去!真實too young too
naive.
相關推薦
關於C語言中switch的第一個case上面寫程式碼的愚蠢之舉
今天在開發貸記卡ATM前置時,在ATMCommCCPS.c中寫下了如下程式碼 switch (atoi(cvtXml[i].txn_num)){ ret = -1; HtLog(gsLogFile,HT_LOG_MODE_DEBUG,__FILE
C語言中switch...case語句中break的重要性
不能 實現 比例 重要性 case語句 毫無 ... 應該 switch 在C語言中switch...case語句是經常用到的,下面我介紹一下在使用該語句時候需要註意的一個細節問題。話不多說,直接舉例子: 例子1: switch(fruit) { case 1:printf
關於C語言中switch的case裡定義變數解決編譯報錯
時間緊促,粗糙記錄一下! 一: case 1: int a; break; case 2: ...... 二: case 1: char *p = malloc(......); ....... case 2: ...... 像一那樣在case裡面直接定義變數時,編譯器一
C語言中switch語句
在多分支選擇中,用if語句程式會冗長,可讀性低,用switch更合適。 switch語句格式: switch(表示式) { case 常量1:語句1;[break;] case 常量2:語句2;[break;] : : : : default: 語句n } 注意 : 1、當(表示式)
C語言中switch分支選擇語句的使用講解
1 每個case後面沒有加break的情況 執行情況: 情況分析: 首先程式得到一個表示式的值以後,按照順序開始比較,若發現一個分支一致,則就進入這個分支執行,因為沒有break,則程式便不再判斷,繼續往下執行,直到執行完default之後跳出。
c語言中getchar()函式一個常見Error
getchar() 從這個名字來看應該是 得到一個字元。 正好C語言裡面有一個char型別, 很容易就出現瞭如下程式: # include <stdio.h> int main (voi
C語言中,如何通過函式來改變一個變數的值
最近看面試題,遇到一些關於通過函式改變一個變數的值得問題,現在終結一下: 先看下面一段程式碼: #include <stdio.h>#include <stdlib.h> void GetMemory(char *p) { p=(char
Python中的字典與C語言中的switch結構類比
題目中用了類比而不是對比,因為我覺得我想要的並不是他們兩者之間的差異,而是想在Python中找到一種方式能夠完全代替C語言中的switch結構。 之前使用字典功能模擬switch結構的時候總覺得有點缺憾,因為自己還要構造switch的defau
函式中有多個return?C語言中,一個函式可以有幾個返回值?
在移植wifi的程式碼時,遇到了一些與下面類似的函式,這些函式中有不只一個return,這可是個新鮮的玩意兒: int func (int b) { int a=5; if (a>b) return a; else
C語言中,利用巨集定義一個字串和字元陣列定義的字串其末尾都會自動新增\0字元
#include <stdio.h> #define MYPHONE "AT+CMGS" unsigned char SMS[]="HELLO, WELCOME TO RCCTS!"; unsigned char *String; unsigned char i=0; void main() {
C語言中,為什麼結構體後面經常定義一個空陣列
最近在寫C程式碼,經常看到Linux 的標頭檔案中有的結構體後面會定義一個空陣列,不知道其為何作用?經過高人指點終於明白其要點! struct inotify_event { __s32 wd; __u32 mask; __u32 cookie;
c語言中char* 代表什麽
c 字符數組 1 c語言中,char* 代表 字符指針類型,當其指向一個字符串的第一個元素時,它就可以代表這個字符串了2 示例#include<stdio.h>int main(){ char* str = "learn c"; printf("%s\n", str);
C語言中“段錯誤”出現的場景
oca auth pan clas log ted start 符號 cnblogs 1 /************************************************************************* 2 > Fil
c語言中continue的運用,同時學習接收字符,打印字符,遍歷字符
putc pre 讀取 ext cnblogs enter pri void blog 1 /************************************************************************* 2 > Fi
c語言中fflush的運用為什麽沒有效果呢,測試平臺linux
*** file 語言 stdlib.h clu author 年齡 blog name 1 /************************************************************************* 2 > F
C語言中,隱藏結構體的細節
all printf span 包括 strcpy () 創建 提高 結構體指針 我們都知道,在C語言中,結構體中的字段都是可以訪問的。或者說,在C++ 中,類和結構體的主要區別就是類中成員變量默認為private,而結構體中默認為public。結構體的這一個特性,導致結構
C語言中的union使用方法
位置 http term 位域 dem 結構體 數據結構 pri 使用 union共用聲明和共用一變量定義: “聯合”是一種特殊的類。也是一種構造類型的數據結構。在一個“聯合”內能夠定義多種不同的數據類型。 一個被說明為該“聯合”類型的變量中,同意裝入該“
C語言中的typedef
中文 講解 tro table 現在 int 一個 cor 位置 typedef 的講解與應用實例 前言:我們學過C語言的人都應該聽過,或者說學過,甚至說用過typedef,多多少少都對其有所了解。不過就算沒聽過也沒關系,我們一起來探討一下。 闡述:typedef
C語言中的main函數以及main函數是如何被調用的
連接 命令 c程序 指定 www blog nbsp 程序 編譯器 main函數是C語言中比較特殊的函數,C程序總是從main函數開始執行,main函數的原型是: 1 int main(int argc, char *argv[]); 其中argc是命令行參數的個數,a
C語言中do...while(0)的妙用-避免goto
java ng- pop execute size 釋放資源 and var text 使用goto的優雅並避免結構的混亂 將要跳轉到的語句用do{…}while(0) 包起來就可以。 reference #defien N 10 bool