2013-06-22から1日間の記事一覧

構造体

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>…

Rstudioを使ってRcppする

こちらにあるように、Rの最新版(R2.15.0で始めたら対応していなかった…R3.0でやり直して成功した)で、Rtoolsを入れて、Rstudioも入れた RstudioのC/C++ファイル作成機能などを使ってやった こちらも参考 注意! // [[Rcpp::export]] はコメント行かと思った…

unsignedという型の扱い

C

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