完全なセキュリティ

Embedded Trust が今ここに!

定義
作製
プログラム
保証
配布

探す

セミホスティング経由のprintfをリリース時に削除する

Technical Note 181224J

Targets:
All

Component:
Compiler

Updated:
1/22/2019 8:24 AM

はじめに

本テクニカルノートでは、リリース時にセミホスティング経由のprintfを削除する方法について説明します。

解説

デバッグ時にprintfを使用していた場合、リリース用に変更する際にprintfを削除する必要がありますが、printfは可変長引数のため、単純な置き換えができません。

C99では可変長引数のマクロが使用できるので以下の記述でprintfを何もしない記述にすることができます。

#define printf(…)

ただし、C89では適用できませんので、ご注意ください。

 

下記のようにコンパイルオプションで切り替えるようにしておけば、コードの修正なしで、ビルド構成の切り替えのみでprintfを無効にできるのでお勧めです。

#ifdef DEBUG
#define DBG_PRINTF(fmt, …) printf(fmt, ##__VA_ARGS__)
#else
#define DBG_PRINTF(fmt, …)
#endif

 

まとめ

リリース時にprintfを無効にする方法について説明しました。

 

全ての製品名は、それぞれの所有者の商標または登録商標です

© IAR Systems 1995-2018 - All rights reserved.

We use cookies on this website to provide you with a better experience. You need to accept cookies to continue using this site. Cookies