小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


C++

【cppcheck】(warning) sprintf format string requires 1 parameter but 2 are given.

C++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 (warning) sprintf format string requires 1 parameter but 2 are given. cppcheckのバージョン v1.66 サンプルプログラム 以下のソースプ…

【cppcheck】(style) Clarify calculation precedence for '+' and '?'.

C++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 (style) Clarify calculation precedence for '+' and '?'. cppcheckのバージョン v1.66 サンプルプログラム 以下のソースプログラムを解析…

【cppcheck】error: Undefined behavior: Variable 'xxx' is used as parameter and destination in s[n]printf().

C++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 error: Undefined behavior: Variable 'xxx' is used as parameter and destination in s[n]printf(). cppcheckのバージョン v1.66 サンプ…

(warning) The 2nd memset() argument '8224' doesn't fit into an 'unsigned char'.

C++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 (warning) The 2nd memset() argument '8224' doesn't fit into an 'unsigned char'. cppcheckのバージョン v1.66 サンプルプログラム 以下…

【C++】構造体のサイズとバイトアライメント

C++

はじめに 構造体のサイズとアライメントについて過去にハマッたことがあったので、まとめてみました。 構造体のサイズ 次のような構造体があった場合、ST_TESTのbyte数は1+4+1の6byteと思いきや、Windows 32bitの場合12byteになります。 これはメモリ上にメ…

C++のコードレビューで使いたい、コードの品質を向上させる3つの方法

C++

photo credit: iLikeSpoons via photopin cc はじめに コードレビュー時にレビューアの方はどんなことに気をつけてレビューしていますか? シンプルなコードになっているか、バグはないか、メンテナンス性は悪くないかなど、様々な観点でコードをレビューす…

【cppcheck】A pointer can not be negative so it is either pointless or an error to check if it is

C++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 (style) A pointer can not be negative so it is either pointless or an error to check if it is. cppcheckのバージョン v1.65 サンプル…

【cppcheck】(error) Buffer overrun possible for long command line arguments.

C++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 (error) Buffer overrun possible for long command line arguments. cppcheckのバージョン v1.65 サンプルプログラム 以下のソースプログ…

【VC++】デバッグログ出力時に呼び出し元関数名を出力する

C++

はじめに デバッグログを出力する関数の設計時に、呼び出し元の関数名を引数に含めるを忘れてしまいました。このため、テスト時にデバッグログを出力させたら、どの関数が吐いたログか分かりにくい状態となってしまった。関数の引数を変更しようにも、呼び出…

VC++で現在時刻をミリ秒まで取得する

C++

はじめに アプリケーションのデバッグログを出力するときなど、現在時刻をミリ秒まで取得したいときがあります。VC++で現在時刻をミリ秒まで取得するコードを書いてみました。 環境 Visual Studio 2005 サンプルプログラム #include <windows.h> void showNowTime() { S</windows.h>…

【cppcheck】(error) Resource leak: fp

C++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 (error) Resource leak: fp cppcheckのバージョン v1.65 サンプルプログラム 以下のソースプログラムを解析にかけると表示されます。 #incl…

【cppcheck】(error) Memory leak: pointer

C++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 (error) Memory leak: pointer cppcheckのバージョン v1.65 サンプルプログラム 以下のソースプログラムを解析にかけると表示されます。 #i…

【VC++】CryptoAPIでSHA-256のハッシュ値を生成する

C++

はじめに Visual C++ 2005の環境でCryptoAPIを使ってSHA-256のハッシュ値を生成するプログラムを書いてみました。新版暗号技術入門 秘密の国のアリスposted with amazlet at 14.07.10結城 浩 ソフトバンククリエイティブ 売り上げランキング: 5,620Amazon.co…

【cppcheck】Invalid memcmp() argument nr 3. A non-boolean value is required.

C++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 error: Invalid memcmp() argument nr 3. A non-boolean value is required. cppcheckのバージョン v1.65 サンプルプログラム 以下のソース…

【cppcheck】 (warning) Logical disjunction always evaluates to true

C++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 (warning) Logical disjunction always evaluates to true: val != 1 || val != 2 cppcheckのバージョン v1.65 サンプルプログラム 以下の…

【cppcheck】(warning) Found calculation inside sizeof().

C++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 (warning) Found calculation inside sizeof(). cppcheckのバージョン v1.65 サンプルプログラム 以下のソースプログラムを解析にかけると…

C6305の解説 sizeof 数と countof 数の間で不一致が発生した可能性があります

C++

photo credit: lincolnblues via photopin cc はじめに とあるコードをVisual Studio 2013でコード分析をかけたら以下の警告が表示されました。 警告 C6305: sizeof 数と countof 数の間で不一致が発生した可能性があります. C6305の警告の意味について調べ…

【cppcheck】Variable 'xxx' is reassigned a value before the old one has been used.

C++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 Variable 'xxx' is reassigned a value before the old one has been used. cppcheckのバージョン v1.64 サンプルプログラム 以下のソース…

Visual C++ 2013でDLLを作成して動的読み込みしてみる。

C++

はじめに Visual Studio Express 2013 for Windows DesktopでDLLを作成して、コンソールアプリケーションからDLLを動的読み込みして、関数を実行してみたいと思います。新版 明解C言語 入門編posted with amazlet at 14.05.02柴田望洋 ソフトバンククリエイ…

【cppcheck】The code contains characters that are unhandled. Neither unicode nor extended ASCII are supported.

C++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 The code contains characters that are unhandled. Neither unicode nor extended ASCII are supported. ソースコード中に、全角空白等の…

【cppcheck】Size of pointer 'xxx' used instead of size of its data.

C++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 Size of pointer 'xxx' used instead of size of its data. sizeof演算子に対してポインタ型変数を渡した場合に、警告が表示されます。 cpp…

【cppcheck】Checking if unsigned variable 'xxx' is less than zero.

c++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 Checking if unsigned variable 'xxx' is less than zero. cppcheckのバージョン v1.64 サンプルプログラム 以下のソースプログラムを解析…

【cppcheck】Buffer 'xxx' is being written before its old content has been used.

C++

はじめに C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。 Buffer 'xxx' is being written before its old content has been used. cppcheckのバージョン v1.64 サンプルプログラム 以下のソースプロ…

【C言語】#include <hoge.h>と#include "hoge.h"の違い

C++

はじめに C言語をはじめて習うときに必ずでてくる#include。 #include <hoge.h> #include "hoge.h" 今頃になって、#include <hoge.h>と#include "hoge.h"の違いを正しく理解できていなかったことに気づきました。 #include <hoge.h>と"hoge.h"の違い ぼくは、#include <hoge.h>と"hoge.h"の使</hoge.h></hoge.h></hoge.h></hoge.h>…