全レイヤーで使用される共通マクロ定義
More...
#include <stddef.h>
#include "choco_message.h"
Go to the source code of this file.
|
|
#define | NO_COVERAGE |
| |
| #define | KIB ((size_t)(1ULL << 10)) |
| | KiB定義(=1024)
|
| |
| #define | MIB ((size_t)(1ULL << 20)) |
| | MiB定義(=1024 * 1024)
|
| |
| #define | GIB ((size_t)(1ULL << 30)) |
| | GiB定義(=1024 * 1024 * 1024)
|
| |
| #define | IS_POWER_OF_TWO(val_) ( ((size_t)(val_) != 0u) && ( (((size_t)(val_) & ((size_t)(val_) - 1u)) == 0u))) |
| | 2の冪乗かをチェックする
|
| |
| #define | IF_ARG_NULL_GOTO_CLEANUP(ptr_, return_variable_, rslt_code_, rslt_str_, function_name_, variable_name_) |
| | 引数ptr_がNULLであればret_コードを出力し、cleanupにジャンプする
|
| |
| #define | IF_ARG_NOT_NULL_GOTO_CLEANUP(ptr_, return_variable_, rslt_code_, rslt_str_, function_name_, variable_name_) |
| | 引数ptr_がNULLでなければret_コードを出力し、cleanupにジャンプする
|
| |
| #define | IF_ALLOC_FAIL_GOTO_CLEANUP(ptr_, return_variable_, rslt_code_, function_name_, variable_name_) |
| | 引数ptr_がNULLであればret_コードを出力し、cleanupにジャンプする
|
| |
| #define | IF_ARG_FALSE_GOTO_CLEANUP(is_valid_, return_variable_, rslt_code_, rslt_str_, function_name_, variable_name_) |
| | 引数is_valid_がfalseであればret_コードを出力し、cleanupにジャンプする
|
| |
全レイヤーで使用される共通マクロ定義
- Author
- chocolate-pie24
- Version
- 0.1
- Date
- 2025-09-20
- Copyright
- Copyright (c) 2025 chocolate-pie24
- License
- MIT License. See LICENSE file in the project root for full license text.
◆ GIB
| #define GIB ((size_t)(1ULL << 30)) |
GiB定義(=1024 * 1024 * 1024)
◆ IF_ALLOC_FAIL_GOTO_CLEANUP
| #define IF_ALLOC_FAIL_GOTO_CLEANUP |
( |
|
ptr_, |
|
|
|
return_variable_, |
|
|
|
rslt_code_, |
|
|
|
function_name_, |
|
|
|
variable_name_ |
|
) |
| |
Value: do { \
if(NULL == ptr_) { \
ERROR_MESSAGE("%s(NO_MEMORY) - Failed to allocate %s memory.", function_name_, variable_name_); \
return_variable_ = rslt_code_; \
goto cleanup; \
} \
} while(0); \
引数ptr_がNULLであればret_コードを出力し、cleanupにジャンプする
- Note
- エラーメッセージはNO_MEMORYで、function_name_とvariable_name_をエラーメッセージに出力する
- Parameters
-
| [in] | ptr_ | NULL判定対象変数 |
| [in] | return_variable_ | この関数を呼び出す関数のリターン変数 |
| [in] | rslt_code_ | 実行結果コード |
| [in] | function_name_ | このマクロを使用する関数名称 |
| [in] | variable_name_ | NULL判定対象変数名 |
#define ERROR_CODE 1
#define SUCCESS 0
int func(void) {
int result = ERROR_CODE;
int* a = NULL;
result = SUCCESS;
cleanup:
return result;
}
#define IF_ALLOC_FAIL_GOTO_CLEANUP(ptr_, return_variable_, rslt_code_, function_name_, variable_name_)
引数ptr_がNULLであればret_コードを出力し、cleanupにジャンプする
Definition: choco_macros.h:151
◆ IF_ARG_FALSE_GOTO_CLEANUP
| #define IF_ARG_FALSE_GOTO_CLEANUP |
( |
|
is_valid_, |
|
|
|
return_variable_, |
|
|
|
rslt_code_, |
|
|
|
rslt_str_, |
|
|
|
function_name_, |
|
|
|
variable_name_ |
|
) |
| |
Value: do { \
if(!(is_valid_)) { \
ERROR_MESSAGE("%s(%s) - Argument %s is not valid.", function_name_, rslt_str_, variable_name_); \
return_variable_ = rslt_code_; \
goto cleanup; \
} \
} while(0); \
引数is_valid_がfalseであればret_コードを出力し、cleanupにジャンプする
- Parameters
-
| [in] | is_valid_ | true/false判定変数 |
| [in] | return_variable_ | この関数を呼び出す関数のリターン変数 |
| [in] | rslt_code_ | 実行結果コード |
| [in] | rslt_str_ | 実行結果コードの文字列 |
| [in] | function_name_ | このマクロを使用する関数名称 |
| [in] | variable_name_ | true/false判定対象変数名 |
#define ERROR_CODE 1
#define SUCCESS 0
int func(void) {
int result = ERROR_CODE;
bool a = false;
result = SUCCESS;
cleanup:
return result;
}
#define IF_ARG_FALSE_GOTO_CLEANUP(is_valid_, return_variable_, rslt_code_, rslt_str_, function_name_, variable_name_)
引数is_valid_がfalseであればret_コードを出力し、cleanupにジャンプする
Definition: choco_macros.h:183
◆ IF_ARG_NOT_NULL_GOTO_CLEANUP
| #define IF_ARG_NOT_NULL_GOTO_CLEANUP |
( |
|
ptr_, |
|
|
|
return_variable_, |
|
|
|
rslt_code_, |
|
|
|
rslt_str_, |
|
|
|
function_name_, |
|
|
|
variable_name_ |
|
) |
| |
Value: do { \
if(NULL != ptr_) { \
ERROR_MESSAGE("%s(%s) - Argument %s requires a null pointer.", function_name_, rslt_str_, variable_name_); \
return_variable_ = rslt_code_; \
goto cleanup; \
} \
} while(0); \
引数ptr_がNULLでなければret_コードを出力し、cleanupにジャンプする
- Parameters
-
| [in] | ptr_ | NULL判定対象変数 |
| [in] | return_variable_ | この関数を呼び出す関数のリターン変数 |
| [in] | rslt_code_ | 実行結果コード |
| [in] | rslt_str_ | 実行結果コードの文字列 |
| [in] | function_name_ | このマクロを使用する関数名称 |
| [in] | variable_name_ | NULL判定対象変数名 |
#define ERROR_CODE 1
#define SUCCESS 0
int func(void) {
int result = ERROR_CODE;
int a = 0;
result = SUCCESS;
cleanup:
return result;
}
#define IF_ARG_NOT_NULL_GOTO_CLEANUP(ptr_, return_variable_, rslt_code_, rslt_str_, function_name_, variable_name_)
引数ptr_がNULLでなければret_コードを出力し、cleanupにジャンプする
Definition: choco_macros.h:118
◆ IF_ARG_NULL_GOTO_CLEANUP
| #define IF_ARG_NULL_GOTO_CLEANUP |
( |
|
ptr_, |
|
|
|
return_variable_, |
|
|
|
rslt_code_, |
|
|
|
rslt_str_, |
|
|
|
function_name_, |
|
|
|
variable_name_ |
|
) |
| |
Value: do { \
if(NULL == ptr_) { \
ERROR_MESSAGE("%s(%s) - Argument %s requires a valid pointer.", function_name_, rslt_str_, variable_name_); \
return_variable_ = rslt_code_; \
goto cleanup; \
} \
} while(0); \
引数ptr_がNULLであればret_コードを出力し、cleanupにジャンプする
- Parameters
-
| [in] | ptr_ | NULL判定対象変数 |
| [in] | return_variable_ | この関数を呼び出す関数のリターン変数 |
| [in] | rslt_code_ | 実行結果コード |
| [in] | rslt_str_ | 実行結果コードの文字列 |
| [in] | function_name_ | このマクロを使用する関数名称 |
| [in] | variable_name_ | NULL判定対象変数名 |
#define ERROR_CODE 1
#define SUCCESS 0
int func(void) {
int result = ERROR_CODE;
int* a = NULL;
result = SUCCESS;
cleanup:
return result;
}
#define IF_ARG_NULL_GOTO_CLEANUP(ptr_, return_variable_, rslt_code_, rslt_str_, function_name_, variable_name_)
引数ptr_がNULLであればret_コードを出力し、cleanupにジャンプする
Definition: choco_macros.h:86
◆ IS_POWER_OF_TWO
| #define IS_POWER_OF_TWO |
( |
|
val_ | ) |
( ((size_t)(val_) != 0u) && ( (((size_t)(val_) & ((size_t)(val_) - 1u)) == 0u))) |
2の冪乗かをチェックする
- Return values
-
◆ KIB
| #define KIB ((size_t)(1ULL << 10)) |
◆ MIB
| #define MIB ((size_t)(1ULL << 20)) |