関数ポインタとかビット演算とか
少しだけ触ってみた。
なんか、Cっていう言語の中で一番面白いところかも。スクリプト言語並みの高級な処理を夢見て一生懸命そっちの方をやるより、こういう泥臭いのをやる方がずっとこの言語らしくも思えるし。
以下、関数ポインタのサンプル。
#include <stdio.h> #include <string.h> //第一変数で受け取った文字を削除 char *del_alpha(char x, char *line) { int i, k, l; char *str; l = strlen(line); str = (char *)malloc(l); for(i = 0, k = 0; i < l; i++) { if(x == line[i]) { continue; } str[k++] = line[i]; } str[k] = '\0'; return str; } main(int argc, char *argv[]) { char *rtMsg = ((char *(*)(char, char *))del_alpha)('i', "mixi"); printf("string : %s", rtMsg);//"string : mx" }