処理時間を計算するために使う関数はいくつかありますが、処理直前と直後の時間の 差分を計算するという点では基本的に使い方は同じです。用途に応じて使い分けてください。 GetTickCount() Windows起動からの経過時間をミリ秒単位で返す。精度は数十ミリ秒程度。 timeGetTime() 関数を使用するためにはwinmm.libをリンクし mmsystem.hをインクルードする。 GetTickCountと同様にWindows起動からの経過時間をミリ秒単位で返す。 timeBeginPeriod,timeEndPeriodを使うことで精度の調整をすることができる。 デフォルトで5ミリ秒に設定されており、最高で1ミリ秒の精度指定が可能 QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount) LARGE_INTEGER構造体
All Microsoft Global Microsoft 365 Teams Copilot Windows Surface Xbox Deals Small Business Support Software Windows Apps AI Outlook OneDrive Microsoft Teams OneNote Microsoft Edge Skype PCs & Devices Computers Shop Xbox Accessories VR & mixed reality Certified Refurbished Trade-in for cash Entertainment Xbox Game Pass Ultimate PC Game Pass Xbox games PC and Windows games Movies & TV Business Micro
All Microsoft Global Microsoft 365 Teams Copilot Windows Surface Xbox Deals Small Business Support Software Windows Apps AI Outlook OneDrive Microsoft Teams OneNote Microsoft Edge Skype PCs & Devices Computers Shop Xbox Accessories VR & mixed reality Certified Refurbished Trade-in for cash Entertainment Xbox Game Pass Ultimate PC Game Pass Xbox games PC and Windows games Movies & TV Business Micro
はじめに 単体テストを効率的に行うため、テスト対象となる言語に応じてさまざまなフレームワーク「xUnit」がリリースされています。例えばJavaならJUnit、.NETならNUnit、CならCUnit、C++ならCppUnitあたりがそれぞれの代表格といったところでしょうか。 マイクロソフトのオンラインマガジン「MSDNマガジン2008年2月号」で、Windows環境に特化したC/C++対応の単体テストフレームワーク「WinUnit」が紹介されています。実行環境がWindowsに限定されてはいるものの、それを補って余りある使い勝手の良さを実現しています。CUnit/CppUnitの問題点 CUnitによる単体テストの例を示します。 #include <CUnit.h> #include "Car.h" #include <stdio.h> Car c; int car_setup(
プリミティブ型でなくとも小さな構造体 (or 共用体) ならレジスタ渡しになる、ってのは C で最適化されたコードを書く際に、しばしば使われるテクニック。でも C++ だと、コピーコンストラクタやデストラクタがある場合はこの最適化が不可能。他にも言語仕様的に細かな条件はあるのかな。ともかくコンパイラの実装でこの可否判断はどうなっているのか、と SUN のドキュメントを読んでいたら、とても頑張っていて驚いた。 In compatibility mode (-compat[=4]), a class is passed indirectly if it has any one of the following: A user-defined constructor A virtual function A virtual base class A base that is passed ind
エンジニアだったら「このコードを見て欲しいのだけど・・・」というシーンはよくある。そういうときはメールやIMを使うときが多いが、それだとインデントが崩れてどうにも見づらい。 そこで使えそうなのがTextSnipだ。このサイトで他の人に見せたいコードを貼り付けると表示用のURLを生成してくれる。 このURLを開けばきちんとフォーマットされたコードを見る事ができ、なおかつきちんと関数名などが色分けされた状態になっている。 行番号もついてくるので、そのページを見ながら「12行目のコードだけどさ・・・」といった議論もできて便利そうだ。 エンジニアと仕事をする人なら知っておいても悪くないですね。あ、ただ日本語は文字化けするので注意が必要ではある。
こんなことができたのか… $ echo '#include "/dev/tty"' > tty.c $ gcc tty.c (cat と同様に,ソースコードを入力する) #include<stdio.h> int main() {printf("hello, tty!\n");return 0;} (Ctrl-d で終了) $ ls a.exe tty.c $ ./a.exe hello, tty! 研究室の Windows PC で試したので,/dev/stdin とかはありませんでした… /dev/tty は windows cygwin でも使えるのか.なんて汎用的 ! (Windows と Linux 以外の OS なんて,この世に存在しませんよ.ファンタジーやメルヘンじゃないんですから (セカイ系自分が世界の中心病患者管理人)) さらに,shinichiro_h さんからいただい
Chose Vacation RentalsTips for renting your Vacation Rentals Whether you are a tenant or a landlord, here are some practical tips to help you prepare your vacation. Booking a vacation rental The reservation of your holiday rental is made directly with the landlord. It is recommended to confirm your reservation by sending a rental contract and a deposit or deposit. The balance of the stay will be p
でかいソフトウェアの、大量のソースコードを短時間で読む必要が生じたので、その補助ツールとしてptrace(2)ベースのLinux用関数トレーサを自作しました。こういうツール上でまずソフトウェアを実行してみて、どのファイルのどの関数がどういう順で呼ばれるか把握おけば、いきなりソースコードの山と格闘を始めるより楽かなーと思いまして。せっかく作ったので公開します。 http://binary.nahi.to/hogetrace/ straceはシステムコールだけ、ltraceは共有ライブラリ(DSO)の関数呼び出しだけ*1をトレースしますが、このツールは、実行バイナリ中の自作関数の呼び出しもトレースします。例えば再帰で1から10まで足し算するソースコードを用意して % cat recursion.c #include <stdio.h> int sum(int n) { return n ==
高速開発時代の幕明け コードベースが大きくなるにつれてビルド時間は長くなり、可視性は低下し、破損したビルドの解決は難しくなります。さらにオンプレミスとクラウドのリソースに負担がかかります。Incredibuild で失った時間を取り戻しましょう。 コンパイルの高速化 Incredibuild の高速化でビルド時間を短縮。コンテキストの切り替えが減るので、納期を守りながら創造的な業務に注力できます。 ビルドの可視化 ビルドモニターとオブザーバビリティ機能により、ビルドをかつてないほど見える化。コードの問題や誰がビルドを破損させたのかを特定し、最短距離で解決にたどり着けます。 ビルド アセットのオーケストレーション Incredibuild のアセット オーケストレーション ツールが既存のリソースを最適化。必要なときに必要なだけの演算能力を提供します。 さっそく始める 高速化のしくみ Incr
第1回 C++開発者の皆さん。テスト、ちゃんとしていますか?:連載 C++開発者のための単体テスト入門(1/4 ページ) 連載目次 「ビッグバン・テスト」をご存じですか? アプリケーション全体を構築する数千行、数万行に及ぶコードをコンパイルし、いきなり全体を走らせてその動作を確認するテスト手法です。われわれプログラマーが絶対に過ちを犯さないならともかくも、そうではない現実を考えると、このようなビッグバン・テストは極めてつたないテスト法です(そもそも過ちを犯さないなら、テストの必要はないのですけど)。 テストとは、ひと言でいってしまえば「思ったとおりに動くかを検証すること」でしょうね。プログラムは思ったとおりには動きません。作ったとおりに動きます。従って、「思ったとおりに動くか」の検証とは「思ったとおりに作られているか」の検証にほかなりません。 ビッグバン・テストでも「思ったとおりに動くか」
C++ のシンボルをデマングルする C++ コンパイラはシンボルが一意の名前を持つように名前マングル (name mangling) と呼ばれる処理を行います。本記事では GNU の開発環境で C++ のシンボルをデマングル (demangle) する方法を紹介します。 マングルの方法はコンパイラ依存です。同じコンパイラでもバージョンによってマングルの方法が異なることがあります。たとえば GCC 3.x では int foo(int) を _Z3fooi に、 int foo(const char*) を _Z3fooPKc のようにマングルしますが、 GCC 2.95 ではそれぞれ foo__FPCc, foo__Fi となります。 コマンドラインからデマングル C++ のオブジェクトファイルに nm をかけると、デフォルトではマングルされた読みづらい形式でシンボルが出力されます。 %
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く