問題タブ [c-libraries]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
802 参照

c++ - Visual Studio、C++ で FDLIBM ライブラリを使用する

MATLAB から C++ にいくつかのコードを移植していて、MATLAB の sin() および cos() 関数が C++ ライブラリの sin() および cos() 関数とはわずかに異なる結果を生成することを発見しました。これらの違いをなくすために、C++ コードで fdlibm 5.3 ライブラリから sin() および cos() 関数を呼び出すようにします。これは、MATLAB が sin() および cos() 操作に使用すると思われるものです。

ただし、fdlibm ライブラリを使用するのに苦労しています。Visual Studio 2010 を使用しており、fdlibm ヘッダー ファイルとソース コードをhttp://www.validlab.com/software/からダウンロードしましたが、これらのファイルを使用する最適な方法がわかりません。最初にファイルを静的ライブラリまたは動的ライブラリにビルドしてから、コードにリンクする必要がありますか? また、C++ ライブラリではなく fdlibm から sin() を使用することを指定するにはどうすればよいですか? sin() 関数と cos() 関数が名前空間内にあるように、fdlibm ソース コードを変更する必要がありますか?

どんなガイダンスも大歓迎です。

0 投票する
1 に答える
1827 参照

c++ - 数値計算に役立つc++ライブラリ

私はこれまでBoostライブラリを使用してきました。

でも、行列演算とランダム数を使いたいです。

便利なC++ライブラリを教えてください。

ありがとう。

0 投票する
2 に答える
137 参照

c - ポインタのランタイムタイプチェック

scanf関数がどのように実装されているか知りたいです。(もちろん楽しみのために)引数の数は可変であるためva_listva_argマクロによって確実に実装されます。

また、引数の数がフォーマット文字列と一致しない場合、いくつかの警告がスローされます。これは、フォーマット文字列を解析し、それを引数の数と比較することで実行できます。魔法はありません。

どのように実装されているかわからないのは、型チェックだけです。引数の型(データへのポインタ)がフォーマットリテラルの対応する宣言と一致しない場合scanf、警告が生成されます。ポインタが指すデータの種類をどのように確認できますか?

例:

出力:

AFAIK CライブラリはC言語/コンパイラの一部ではないため、に言語関連のものはありません<stdio.h>。警告はscanf、コンパイラ[?]ではなく、の実装によって生成されると思います。(多分使用#warning

あるコードで同様のことをしたい場合、ポインターが指しているデータ型をどのように知ることができますか?

:GNU Cライブラリのソースコードをダウンロードして、を確認しましたscanf.c。非常に複雑なコードを見つけることができません。#ifndef奇妙な名前と構造を持つ他の関数へのsと呼び出しがたくさんあります...

0 投票する
1 に答える
828 参照

c++ - _splitpath_s() がドライブ文字を返すためにカスタム サイズの文字列バッファーを使用するのはなぜですか?

のドキュメントを読んでいるときに、小さな詳細が目に留まり_splitpath_s()ました。最初のパラメーターでディスク項目のパス (例: C:\ Temp \MyFile.exe) を取得し、それをdrivedirectoryfolder、およびextension名に分割します。ただし、奇妙なことに、3番目のパラメーターでドライブの名前を保持する文字列バッファーの長さを要求します。

私の知る限り、ドライブ文字は 2 文字の文字列に過ぎません。A:、、、などのようにB:、文字の後にセミコロンが続きC:ます。したがって、常に 2 文字の文字列である必要があります。しかし、もしそうなら、なぜ_splitpath_s()ドライブレターの長さを尋ねるのでしょうか? どのドライブ文字が別の形式になる可能性がありますか? 長さを要求せず、単に 2 であると仮定した場合、最悪の場合、どのような問題が発生するでしょうか?

0 投票する
3 に答える
379 参照

c - プログラムで関数を定義すると、それらは標準ライブラリに格納されますか?

関数には 2 種類あります。ライブラリ関数とユーザー定義関数...プログラムで関数を定義すると、その関数はライブラリ関数と同じように標準ライブラリに格納されますか?

0 投票する
0 に答える
92 参照

c - Windows にフォルダをごみ箱として認識させるにはどうすればよいですか?

私は FAT32 MicroSD カードを持っています。私のデバイスはルートに「$Recycle.Bin」という名前のフォルダーを作成し、hidden+system 属性が設定されていますが、Windows はそれを実際のごみ箱として認識しません (正しいアイコンなど)。 .)。

Windows をだましてフォルダを本物のビンとして認識させるにはどうすればよいですか?

C で FATFS ライブラリを使用してフォルダーを作成する必要があるデバイス (ARM データロガー) のファームウェアを作成しています。サンプル コードを要求することもできますが、誰かが私を正しい方向に向けることができれば、自分でコードを書くことができます。あらゆる形式の回答を歓迎します。

0 投票する
2 に答える
282 参照

c++ - "#include" としてインポートできる C ライブラリを作成する"

C スタティックを作成したいので、ユーザーは次のように使用できます。

どうすればこれを達成できますか?

0 投票する
1 に答える
114 参照

c++ - 予期しない大きな u16_t buf

関数へのポインターを呼び出すC関数があります(bufへのポインターとbufのサイズを使用)

のように定義された関数へのポインタ

次に、実際の C++ クラス メソッドがそのポインターを介して取得します。

問題はlenbufがかなり大きいことです。

出力は次のとおりです。

それはどうしてですか?