c2a-core icon indicating copy to clipboard operation
c2a-core copied to clipboard

物理定数をどう定義するか?

Open meltingrabbit opened this issue 3 years ago • 4 comments

概要

物理定数をどう定義するか?

詳細

PIや光速Cや,その他の定数をどう定義するか考える.

user/lib等において,接頭辞をつけるとか?

physical_constant.h

#define PCONST_PI (3.14...)
#define PCONST_C  (....)

みたいに?

close条件

考えたら

meltingrabbit avatar Jan 04 '22 05:01 meltingrabbit

今,主にAOBCなどでは

MATH_kPi	//!< 円周率
PHYSICAL_kC  //!< 光速

というような定義をしている.

ゆくゆくは

core/Library/math_constant.c, h
core/Library/physical_constant.c, h

などで定義したい?

meltingrabbit avatar Jan 04 '22 05:01 meltingrabbit

型付けたすぎるけどCだとそうするしかないですよねー.defineでやる分にはメモリ喰うわけでもないですし全部coreに寄せてよさそう.

sksat avatar Jan 04 '22 08:01 sksat

型付けたいめっちゃわかる.再プロもできるし.

なんで define 使ってるかというと,C89のconst は,リテラルしか定義できないからなんよ...

つまり,

const float pi = 3.14;
const flaot hoge = pi * fuga;

ができない....

meltingrabbit avatar Jan 04 '22 09:01 meltingrabbit

C89そうなんだ.C++なら constexprという武器があるんですけどねえ.

とはいえCだとそもそもろくに型付けられないので定数は define 一択だと思います.

sksat avatar Jan 04 '22 09:01 sksat