C

CのライブラリをRのパッケージにする

R C

Using R — Packaging a C library in 15 minutes Linking static library into R,static library use for R extension Static library 基本的には 動くCライブラリをローカルにとってきて、それのstatic libraryをコンパイルして作り、それをRのパッケージの…

C,Fortranを使うRのtoy example packages

最小構成(C):解説文 C,C++,Fortran useDynLib()とかNamespaceとか→こちら

C/C++ so/dllのR読み込み

C++をRで使うとはどういうことか、というと… C++(Cも)として動いている何かがある それをRから使える動的ライブラリにして、 それをRから呼び出せるようにRに接続して、 Rから呼び出す関数を作り そして使う という段階を踏む 「C++(Cも)として動いている何…

constでバグを減らす

C

こちらから 関連よみものページ(こちら)

構造体

C

構造体を使ってみる 値列の要素数・平均・標本分散・不偏分散を持つ構造体を作ってみる ヘッダファイルで構造体の作りを宣言("DescriptionStat.h"というファイル) // DescriptionStat.h struct DescStat { int n; //number of values double m; //mean doubl…

グローバル・スタティック・ローカル

C

変数の扱い 当該関数内での使い捨て:ローカル コンパイルして一塊になっている全体で共通:グローバル 同じ変数名で使いまわせるが、関数処理が終わっても(オブジェクトの持ち物のように)継続して持たせられるもの(?) 参考1 参考2

プロトタイプ宣言、ヘッダーファイル、インクルード

C

どんな関数が定義されているかを宣言するプロトタイプ宣言:hoge.h 宣言した関数の処理が書かれているファイル:hoge.c hoge.hに宣言されていてhoge.cに書かれている関数を使う別のソースファイル:my.cでは、hoge.hに宣言されている関数を使います、と冒頭で…

ポインタを使って複数の値を返す

C

こちらにポインタを使って2つの値を返している例がある 拝借する #include <stdio.h> void foo(int i, int *m, int *d); void foo(int i, int *m, int *d) { *m = i%10; *d = i/10; } main() { int i,j; foo(123,&i,&j); printf("%d , %d\n",i,j); } 結果 ryamada@CF</stdio.h>…

関数の作成、ヘッダファイル

C

関数の作成としてこちらでは暦を扱っている。 includeの使い方(こちら)と、関数の定義とそれを使ったmain()関数を作る、ということのようなので、メルセンヌ・ツイスターの一様乱数を使った逆変換法による指数乱数発生をやってみる(こちら) includeではstdio…

ポインタ、アドレス

C

#include <stdio.h> main () { int a[5] = {1,2,3,4,5}; int *p; int i; p = a; //配列の先頭ポインタを取得 p = &a[0]の省略形 for (i = 0; i < 5; i++) { printf("%d\n",*(p+i)); printf("%d\n",p+i*5/2); } } ポインタを使って、ポインタが指しているaの中身を表示</stdio.h>…

配列の要素数のオーバーフロー

C

配列の要素数のオーバーフロー(参考) ちゃんと割り付けしていないのに、回ってしまうこと。場合によってはメモリの使い訳がコントロールされていない状態(結果がむちゃくちゃ)になるらしい #include <stdio.h> int main() { int test1[5] = {1,2,3,4,5}; test1[10] = </stdio.h>…

unsignedという型の扱い

C

こちらの続き こちらをなぞる unsigned という型のコントロール法があるらしい。下の例ではうまくいっていないようだが… コメントをいただき、"printf("%u\n",num);"とすると負でなくなりました #include <stdio.h> main () { int counter =1; unsigned int num; num </stdio.h>…

Cを基礎から

C

職場の友人がCをゼロから勉強する、というので、一緒に覚えることにしました。 まず、環境整備。職場でも家でも移動中でも勉強したいときにできるのが良いので、Cygwin上でやることにしました。 Cygwinを入れる:こちら(代数統計アプリsingularを入れるとき…