Riverside Learning LABO(Skill/Idea/Code)

よりよいシステムのため工学系と人間系の学習下書きメモ

C言語

System Error

Title Windows System Error Codes (exit codes)http://www.hiteksoftware.com/mize/Knowledge/articles/049.htm?3e3ea140

構造体配列の初期化

C言語 ■構造体配列の初期化サンプル後輩に聞かれたので... - 構造体配列の初期化(全て0埋め版) typedef struct{ short int a; char b[10]; }Sample;Sample st[10]; memset( &st, 0, sizeof(st) );× memset( &st, 0, sizeof(st)*10 );× memset( st, 0, sizeo…

文字列比較サンプル

C言語文字列比較サンプル - ■CompareTo' 必要な変数を宣言する Dim stTarget1 As String = "ABCDEF" Dim stTarget2 As String = "ABCEGI"' stTarget1 の文字列と stTarget2 の文字列を比較する Select Case stTarget1.CompareTo(stTarget2) Case 0 MessageBo…

関数ヘッダ

C言語関数ヘッダサンプル - All Rights Reserved,Copyright (C) XXXXXXXXX LIMITED 20XX システム名:XXXXXXXX ファイル名:XXXXXXXXXXXXXX.c モジュール名:XXXXXXXXXXXXXX 1.機能 〇〇〇〇〇〇〇〇機能 2.構造 main() +- XxxxxXxxxxx() +- XxxxxXxxxxx() 3…

2重インクルード防止

C言語2重インクルード防止サンプル 2重インクルードされても良いように、ヘッダファイル名を定義 - #ifndef XXXXXDEF01_H_ #define XXXXXDEF01_H_ ・ ・ #endif -

型をあらわす接頭語

C言語接頭語サンプル 変数には型をあらわす接頭語をつける。以下に接頭語を記載する。 - 型 接頭語 型 接頭語 int i ポインタ p short s ポインタのポインタ pp long l FILE* fp float f 構造体 st double d char ch char[] sz boolean b unsigned char uc -

C言語初期化サンプル

C言語初期化サンプル - ■変数の初期化 ・ int, short, long, double等の数値 →宣言と同時に0で初期化する 例)long int a = 0; ・ char配列の初期化 →memset処理で初期する。 例)memset(c, '\0' ,sizeof(c)); ※性能に影響がある場合は、必要なタイミングで…

ダブルポインタ

ポインタメモ ダブルポインタの使い所 値渡し=内容が別のアドレスにコピーされる 参照渡し=内容への参照アドレスを渡し関数内で操作可能にする 1.渡した関数の中で、領域を変えずに内容変更する場合 アドレスは変更されないのでポインタの値渡し(参照渡し)…

表示文字制御

Sprintfで数値を連結して文字列にしてたときのメモ 旧知識のテキスト化 書式付出力における表示幅の動的指定 %2d や %.3f などの表示幅の指定を動的に行う 書式指定子 * を使う 記述例 sprintf("%3d", val) → sprintf("%*d", formatid, val) ..

変数スコープ

変数のスコープの基本 複数のソースを組み合わせて1つのプログラムを作る ソース内でのみ使うか、共通で使うかで区別が必要。 静的変数 関数内で宣言する変数の前にstaticを付ける 関数が終わっても値を保持する グローバル変数 関数の外で定義(宣言)する…

delimiter除去

『delimiter除去処理』メモ使用箇所 //日付デリミタ"/"があれば削除 */ delimitercut( sCsvBuf[iCnt-1].chCsvItemVal , '/' ) - int delimitercut(char *cpStr, char delim ) { /*----------------------------------------------------------------------*/…

ソフトウェアの瑕疵担保責任

『ソフトウェアの瑕疵担保責任範囲』メモ 出荷後の重大障害を保証する範囲はいつまでか? 1年以内であれば瑕疵として無償対応が求めれる場合もある 本当に瑕疵かどうかはある程度時間をかけて複数の側面から 調査する必要がある... 品質は信頼の要、品質保…

構造体配列とインデックス

以前の『構造体配列』メモ - 【構造体配列の例】 struct SimpleChecker { int number; char name[20]; double checksum; } struct SimpleChecker Checker[20] という構造をもつ「配列」を宣言 Checker[0]〜Checker[19]がメモリ上に配置される... -

整数の取り得る範囲

『整数の取り得る範囲』メモ - 整数の取り得る範囲 SCHAR_MAX +127 // char 型の最大値 SCHAR_MIN -128 // char 型の最小値SHRT_MAX +32767 // short 型の最大値 SHRT_MIN -32768 // short 型の最小値INT_MAX +32767 // int 型の最大値 INT_MIN -32768 // in…

DebugLog

『DebugLog処理』メモ調査は無駄なく速やかに滞りなく...が難しい。 - char sDebugFile[256]; /* DEBUGファイル名(フルパス) */ char *TOPDIR; /* TOPディレクトリ取得ポインタ */ FILE *fpt; /* DEBUGファイル用ポインタ */ /* 編集用バッファを初期化 */ m…

Split

『Split処理』メモ - //文字列内に”=”存在チェック if( (pPoint = strchr(cTarget,'=') ) == NULL){ goto ERROR_END1; } //存在した場合NULLを設定 *pPoint = 0x00; //=以降を取得するためポインタを進める。 pPoint += 1; //最初と最後に着いているダブルコ…

for Loop

『FORループ処理』メモint iCnt;//カウンタ for(iCnt = 0;iCnt Counter;iCnt++){ //一時変数の値と構造体ポインタのメンバ1が一致する場合 if(memcmp(tmp1,pStructure->member1 + (G_SZ_MEMBER1 * iCnt),G_SZ_MEMBER1) == 0){ return 0; } }

the end of the month

『月末を取得する』メモstatic const short int dDayMax[] = { 0 /* ダミー */, 31 /* 1月 */, 28 /* 2月 */, 31 /* 3月 */, 30 /* 4月 */, 31 /* 5月 */, 30 /* 6月 */, 31 /* 7月 */, 31 /* 8月 */, 30 /* 9月 */, 31 /* 10月 */, 30 /* 11月 */, 31 /* 12…

CreateProcess

『実行ファイルから別の実行ファイルを起動する』メモ■CreateProcess // プロセスの起動 BOOL SimpleExecute(LPTSTR lpCommandLine) { STARTUPINFO si ; PROCESS_INFORMATION pi ; if(CreateProcess(NULL, lpCommandLine, // コマンドライン文字列 NULL,NULL…

SERVERとCLIENTソース共有

#ifdef SERVERで環境依存のソースを切り分けることで SERVERとCLIENTソース共有を行う Sample - #ifdef SERVER lrtn = sfgGetEnv(G_NORMAL_MODE, G_TOPDIR, sTop, &lerr); if (lrtn != 0 || sTop[0]=='\0') { /* 環境変数の取得に失敗した場合 */ sEnv = get…

dumpbin /exports XXX.dll

DLLのインターフェースを確認するコマンド 間違いなく関数が追加されていることを検証する 関数内部の動作確認は実機検証が必要になる dumpbin /exports XXXXX01.dll XXXXX01.dll を作成したときの 公開関数の関数名リストを取得できる

C*からshort intへ

char文字列項目をshort int数値項目へのメモ 構造体A.Charitem(char項目) 構造体B.Shortitem(short int項目) 一時領域を利用してatoi関数と(short int)キャストを使用する方法 関数内.... memcpy(StrBuf, 構造体Aポインタ->Charitem, StrBuflength); StrBuf[…

VB.NETからC言語DLLを使う(属性)

VB側で構造体配列として宣言した変数を CのDLLに渡したいときには属性指定が必要である。【例】 - VB側構造体 - _ Public Structure StructSample Dim mem1 As Integer Dim mem2 As Double End Structure - VB側宣言 - Public objStructSample() As StructSa…

VB.NETからC言語DLLを使う

VB.NETからC言語DLLを使う時の注意点を記載 ・Microsoft Visual C++ 6.0 コンパイルする時のオプションは 構造体メンバのアライメント8バイトとする ・構造体の中にGMoney型, short , long がある場合、 8バイト単位のアライメント から始まるよう調整する ※…

配列→ポインタの読み替え

C言語復習メモ しばらく使わなかったら人は忘れるものだ 配列→ポインタの読み替えについてのメモ書きint array[100]; という宣言をした場合に arrayは&array[0]と同義になる 配列名とはそもそも宣言された配列の先頭ポインタを指す のだからそうなるのだが以…

宣言解釈

C言語復習メモ 宣言解釈int (*func_abc[10](double a)) があらわすものfunc_abc is pointer to function(double a) redurning int intを返す関数(引数double a)へのポインタ配列(要素数10)

リトルエンディアンとビッグエンディアン

C言語復習メモ リトルエンディアンとビッグエンディアンバイトオーダーに関するめも メモリ上でのバイナリイメージはCPUごとに異なる0x11223344 - ●リトルエンディアン - 1byteを一組にして逆順に配置する方法 44,33,22,11 - ●ビッグエンディアン - 1byteを…

スタックとヒープとモリの使われ方

C言語復習メモ スタックとヒープとメモリの使われ方 - ●スタック - 積読の本のようにデータを積み上げる構造のメモリ領域のこと。 データ登録時はリストの一番上に登録され、 データ使用時は一番上にあるデータが使用される。関数を呼び出す際には 引数,リタ…

変数生存期間

C言語復習メモ 変数生存期間変数は必要な範囲でのみ存在が許される 無用な延命は意味がない静的変数:プログラム開始から終了まで生存する 自動変数:宣言ブロック内のみ生存する 領域確保:malloc呼び出しからfreeまで生存する

スカラ型と集成体型

C言語復習メモ 「スカラ型と集成体型」・スカラ型(scalar)のもの 算術型(char,int,double,列挙体etc) ポインタ(*char,*int,*double)・集成体型(aggregate)のもの スカラをいくつも集めたもの 配列 構造体 共用体