Updates tagged with include on senooken JP Social!
zundan: ドドスコ投稿したいのでT-Mobileにテザリングしましたよ。Cでの配列の書き方を忘れてたw#include <stdio.h> #include <stdlib.h> #include <time.h>int main(void) { time_t t; unsigned int h = 0; char *ds[] = {"スコ", "ドド"}; char *love = "ラブ注入♡"; srand((unsigned) time(&t)); while(h != 0x888) { h = rand() % 2 + (h * 2) & 0xFFF; printf("%s", ds[h & 1]); } puts(love); return EXIT_SUCCESS; }
zundan's status on Wednesday, 03-Aug-2022 11:56:18 JST
ドドスコ投稿したいのでT-Mobileにテザリングしましたよ。Cでの配列の書き方を忘れてたw #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { time_t t; unsigned int h = 0; char *ds[] = {"スコ", "ドド"}; char *love = "ラブ注入♡"; srand((unsigned) time(&t)); while(h != 0x888) { h = rand() % 2 + (h * 2) & 0xFFF; printf("%s", ds[h & 1]); } puts(love); return EXIT_SUCCESS; }
Heislandmine's status on Thursday, 17-Mar-2022 13:19:30 JST
#include<tintin.h>
noellabo's status on Monday, 21-Feb-2022 19:07:48 JST
#include <misskey.io>
yakitama's status on Thursday, 17-Feb-2022 11:06:23 JST
#include<stdio.h>
zundan: $ cat shuffle.c #include <stdlib.h>#include <stdio.h>#include <ctype.h>#include <time.h>#define utf8_head(c) (((c) & 0xC0) != 0x80)intmain(void){ char input[BUFSIZ], *runes[BUFSIZ]; char output[BUFSIZ]; size_t len, i, j; char *ptr; fgets(input, sizeof(input), stdin); fclose(stdin); ptr = input; while(*ptr) { if (utf8_head(*ptr) && *ptr != '\n') { runes[len] = ptr; len++; } ptr++; } srand((unsigned)time(NULL)); for(i = 0; i < len - 1; i++) { j = i + rand() % (len - i); ptr = runes[j]; runes[j] = runes[i]; runes[i] = ptr; } ptr = output; for(i = 0, ptr = output; i < len; i++) { j = 0; do { *ptr = *(runes[i] + j); j++; ptr++; } while(!utf8_head(*(runes[i] + j))); } *ptr = '\n'; *(ptr + 1) = '\0'; fputs(output, stdout); return EXIT_SUCCESS;}$ gcc -Wall shuffle.c && echo ねむいね | ./a.outいむねねむっちゃ長くなったw
zundan's status on Friday, 28-Jan-2022 11:47:51 JST
$ cat shuffle.c #include <stdlib.h>#include <stdio.h>#include <ctype.h>#include <time.h> #define utf8_head(c) (((c) & 0xC0) != 0x80) intmain(void){ char input[BUFSIZ], *runes[BUFSIZ]; char output[BUFSIZ]; size_t len, i, j; char *ptr; fgets(input, sizeof(input), stdin); fclose(stdin); ptr = input; while(*ptr) { if (utf8_head(*ptr) && *ptr != '\n') { runes[len] = ptr; len++; } ptr++; } srand((unsigned)time(NULL)); for(i = 0; i < len - 1; i++) { j = i + rand() % (len - i); ptr = runes[j]; runes[j] = runes[i]; runes[i] = ptr; } ptr = output; for(i = 0, ptr = output; i < len; i++) { j = 0; do { *ptr = *(runes[i] + j); j++; ptr++; } while(!utf8_head(*(runes[i] + j))); } *ptr = '\n'; *(ptr + 1) = '\0'; fputs(output, stdout); return EXIT_SUCCESS;}$ gcc -Wall shuffle.c && echo ねむいね | ./a.outいむねね むっちゃ長くなったw
acid_rain's status on Wednesday, 26-Jan-2022 18:50:33 JST
#include <stdio.h> // おまじない
lo48576's status on Monday, 16-Aug-2021 21:07:28 JST
#include <io.h>
らりお・ザ・何らかの🈗然㊌ソムリエ
ym: #include<stdio.h>int main(void)｛printf("ちんぽ");｝
ym's status on Tuesday, 13-Jul-2021 15:50:33 JST
#include<stdio.h>int main(void)｛ printf("ちんぽ"); ｝
senooken: C言語の構造体がわからない。 #include <time.h> struct tm t = {0}; 構造体変数はアドレスなのか？tと&tは違うの？配列だと、変数名はアドレスなんだけど、構造体はどうだったけ。
senooken's status on Tuesday, 22-Jun-2021 10:48:29 JST
C言語の構造体がわからない。 #include <time.h> struct tm t = {0}; 構造体変数はアドレスなのか？tと&tは違うの？配列だと、変数名はアドレスなんだけど、構造体はどうだったけ。
whtapple: work/ruby-3.0.1/internal/bits.h が #include <x86intrin.h> してないせいと判明。#if defined(HAVE_X86INTRIN_H) && ! defined(MJIT_HEADER)# /* Rule out MJIT_HEADER, which does not interface well with <immintrin.h> */# include <x86intrin.h> /* for _lzcnt_u64 */#elif MSC_VERSION_SINCE(1310)# include <intrin.h> /* for the following intrinsics */#endif条件つきで #include するやう書かれてるけど, FreeBSD 13.0R標準のclang 11.0.1だと，この条件に合わずスルーしてまった。
whtapple's status on Monday, 17-May-2021 20:13:18 JST
work/ruby-3.0.1/internal/bits.h が #include <x86intrin.h> してないせいと判明。 #if defined(HAVE_X86INTRIN_H) && ! defined(MJIT_HEADER)# /* Rule out MJIT_HEADER, which does not interface well with <immintrin.h> */# include <x86intrin.h> /* for _lzcnt_u64 */#elif MSC_VERSION_SINCE(1310)# include <intrin.h> /* for the following intrinsics */#endif 条件つきで #include するやう書かれてるけど, FreeBSD 13.0R標準のclang 11.0.1だと，この条件に合わずスルーしてまった。
sonota88: グローバル定数はこれでよいので、プリプロセッサでは #include 相当の処理だけやれば良さそう
sonota88's status on Wednesday, 03-Feb-2021 08:17:56 JST
グローバル定数はこれでよいので、プリプロセッサでは #include 相当の処理だけやれば良さそう
lo48576: Sudo Stable Releasehttps://www.sudo.ws/stable.html#1.9.1> The @ include and @ includedir directives can be used in sudoers instead of #include and #includedir. In addition, include paths may now have embedded white space by either using a double-quoted string or escaping the space characters with a backslash.1.9.1 で入った変更らしい
lo48576's status on Thursday, 23-Jul-2020 18:10:49 JST
Sudo Stable Releasehttps://www.sudo.ws/stable.html#1.9.1 > The @ include and @ includedir directives can be used in sudoers instead of #include and #includedir. In addition, include paths may now have embedded white space by either using a double-quoted string or escaping the space characters with a backslash. 1.9.1 で入った変更らしい
hswugbhxwsz: #include とか #define で検索するとC言語の学習できるのでおすすめ(？)
hswugbhxwsz's status on Thursday, 23-Jul-2020 11:33:49 JST
#include とか #define で検索するとC言語の学習できるのでおすすめ(？)
p: @TerminalState File sizes just got bigger. The true future is bytebeat, though. A song of arbitrary length in a paltry 256 bytes of C that generates a raw 16-bit PCM stream, stereo, 44.1kHz, right to standard output. #include <unistd.h> short nx(long t) { return ((t<<2)|((~(t>>1)&0x1ff)*(0x1ff&(0xb494afeba585585aL)>>(((t>>14)^(t>>21))%56)))) /**/; } int main(int argc, char **argv) { long t; short r; for(t=0;;t++) { r = nx(t); write(1, &r, sizeof(r)); } }
p's status on Saturday, 21-Sep-2019 06:32:22 JST
@TerminalState File sizes just got bigger. The true future is bytebeat, though. A song of arbitrary length in a paltry 256 bytes of C that generates a raw 16-bit PCM stream, stereo, 44.1kHz, right to standard output. #include <unistd.h> short nx(long t) { return ((t<<2)|((~(t>>1)&0x1ff)*(0x1ff&(0xb494afeba585585aL)>>(((t>>14)^(t>>21))%56)))) /**/; } int main(int argc, char **argv) { long t; short r; for(t=0;;t++) { r = nx(t); write(1, &r, sizeof(r)); } }
jordyd: trending among C programmers: - #include - #ifdef - #endif
jordyd's status on Thursday, 02-May-2019 09:27:30 JST
trending among C programmers: - #include - #ifdef - #endif
sumiyaki@plr.ph3j.com: 以下、元の文のつもり。 Markdownのテスト。 # があると、hashtagになってしまうか？ 改行はどうなるか？ [Twitterの使い勝手の悪さ、TwitterのCEOも認める](https://it.srad.jp/story/19/02/15/0730231/) ストーリー by hylom 2019年02月16日 7時00分いまさら 部門より ``` #include <stdio.h> int main(int argc, char *args[]) { printf("Hello, world!\n"); } ```
sumiyaki@plr.ph3j.com's status on Wednesday, 20-Feb-2019 04:31:20 JST
以下、元の文のつもり。 Markdownのテスト。 # があると、hashtagになってしまうか？ 改行はどうなるか？ [Twitterの使い勝手の悪さ、TwitterのCEOも認める](https://it.srad.jp/story/19/02/15/0730231/) ストーリー by hylom 2019年02月16日 7時00分いまさら 部門より ``` #include <stdio.h> int main(int argc, char *args[]) { printf("Hello, world!\n"); } ```
Twitterの使い勝手の悪さ、TwitterのCEOも認める | スラド IT
sumiyaki@plr.ph3j.com: Markdownのテスト。があると、hashtagになってしまうか？改行はどうなるか？Twitterの使い勝手の悪さ、TwitterのCEOも認めるストーリー by hylom 2019年02月16日 7時00分いまさら 部門より#include <stdio.h>int main(int argc, char *args[]){ printf("Hello, world!\n");}
sumiyaki@plr.ph3j.com's status on Wednesday, 20-Feb-2019 04:28:37 JST
Markdownのテスト。 があると、hashtagになってしまうか？ 改行はどうなるか？ Twitterの使い勝手の悪さ、TwitterのCEOも認めるストーリー by hylom 2019年02月16日 7時00分いまさら 部門より #include <stdio.h>int main(int argc, char *args[]){ printf("Hello, world!\n");}
zundan@mastodon.zunda.ninja: やっぱりfork爆弾になりそう$ cat bumb.c #include <unistd.h> #include <stdio.h>int main(void) { int n; int pid; while (pid == 0 && n < 3) { n++; pid = fork(); } printf("pid=%d\n", pid); return 0; } $ gcc bumb.c && ./a.out pid=26320 pid=26321 pid=26322 pid=0
zundan@mastodon.zunda.ninja's status on Tuesday, 22-Jan-2019 10:16:15 JST
やっぱりfork爆弾になりそう $ cat bumb.c #include <unistd.h> #include <stdio.h> int main(void) { int n; int pid; while (pid == 0 && n < 3) { n++; pid = fork(); } printf("pid=%d\n", pid); return 0; } $ gcc bumb.c && ./a.out pid=26320 pid=26321 pid=26322 pid=0
ivesen: @fence shouldn't it just do that when you use #include <> ?
ivesen's status on Friday, 28-Dec-2018 10:21:21 JST
@fence shouldn't it just do that when you use #include <> ?
sh@gamelinks007.net: お、templateにラムダ式渡してthreadでよしなにできた？#include <iostream> #include <future> #include <array> #include <functional>template <typename T, typename F> void func(const T& t, F&& f) { f(t); }int main() { std::array<std::thread, 9> th_array; std::function<void(int)> f = [](int i){std::cout << i;}; for(int i =0; i < 9; i++) th_array[i] = std::thread(func<int, decltype(f)>, i, f); for(auto&& t : th_array) t.join(); return 0; }
sh@gamelinks007.net's status on Friday, 07-Dec-2018 23:47:09 JST
お、templateにラムダ式渡してthreadでよしなにできた？ #include <iostream> #include <future> #include <array> #include <functional> template <typename T, typename F> void func(const T& t, F&& f) { f(t); } int main() { std::array<std::thread, 9> th_array; std::function<void(int)> f = [](int i){std::cout << i;}; for(int i =0; i < 9; i++) th_array[i] = std::thread(func<int, decltype(f)>, i, f); for(auto&& t : th_array) t.join(); return 0; }
ahiru: もぐのさんのサンプルコード見てひらめいた バズらないコード #include <stdio.h> int main() { for (int i = 0; i < 20; ++i) { if (i % 3 == 0) { printf("fizz\n"); } else { printf("%d\n"); } } return 0; }
ahiru's status on Monday, 03-Dec-2018 21:50:57 JST
もぐのさんのサンプルコード見てひらめいた バズらないコード #include <stdio.h> int main() { for (int i = 0; i < 20; ++i) { if (i % 3 == 0) { printf("fizz\n"); } else { printf("%d\n"); } } return 0; }
tsutsuii: % gcc -v : gcc version 5.5.0 (nb2 20180327) % cat > test.c #include <stdio.h> int main(){printf("Hello World.\n");} % cc test.c cc1: internal compiler error: Illegal instruction no stack trace because unwind library not available Please submit a full bug report, with preprocessed source if appropriate. See <http://www.NetBSD.org/support/send-pr.html> for instructions. % 悲しいなあ（このバグに誰も気づいていないということが）
tsutsuii's status on Sunday, 18-Nov-2018 00:53:12 JST
% gcc -v : gcc version 5.5.0 (nb2 20180327) % cat > test.c #include <stdio.h> int main(){printf("Hello World.\n");} % cc test.c cc1: internal compiler error: Illegal instruction no stack trace because unwind library not available Please submit a full bug report, with preprocessed source if appropriate. See <http://www.NetBSD.org/support/send-pr.html> for instructions. % 悲しいなあ（このバグに誰も気づいていないということが）
yakitama: #include <stdio.h>int main ( void ) { printf("Hello, Chieri Ogata.\n"); return 0; }
yakitama's status on Saturday, 06-Oct-2018 13:34:12 JST
#include <stdio.h> int main ( void ) { printf("Hello, Chieri Ogata.\n"); return 0; }
inabajunmrrrrrrrr: 大学のプログラミングの授業数学の要素が強すぎて数学力足りなくて速攻リタイヤした#include <stdio.h> は呪文だから無視して良い、みたいな話してたのは覚えてる
inabajunmrrrrrrrr's status on Wednesday, 03-Oct-2018 22:41:46 JST
大学のプログラミングの授業数学の要素が強すぎて数学力足りなくて速攻リタイヤした #include <stdio.h> は呪文だから無視して良い、みたいな話してたのは覚えてる
tsutsuii: ../../../../arch/newsmips/newsmips/news4000.c:54:21: error: variable 'news4000_ipl_sr_map' has initializer but incomplete type static const struct ipl_sr_map news4000_ipl_sr_map = { #include が足りない
tsutsuii's status on Sunday, 30-Sep-2018 17:54:04 JST
../../../../arch/newsmips/newsmips/news4000.c:54:21: error: variable 'news4000_ipl_sr_map' has initializer but incomplete type static const struct ipl_sr_map news4000_ipl_sr_map = { #include が足りない
jkr2255: #include や #define、#pragma がハッシュタグ化しているのも見かける。
jkr2255's status on Wednesday, 26-Sep-2018 23:12:38 JST
#include や #define、#pragma がハッシュタグ化しているのも見かける。
unarist's status on Friday, 21-Sep-2018 20:41:08 JST
#include のタグTLで色んな人のコードを眺める
senooken: 今日詰まったこと。 C言語の引数のアドレスを変更できなかった。こんな感じで，引数に渡したポインターに別のポインターを渡して，出力結果を渡そうとしたのだけど，だめだった。memcpyしたらいけたのだけど。なぜダメなのかがわからなかった。アドレスを書き換えたらダメなんだったたっけ？いや，でも引数にポインターを渡してそれを書き換えるというのはよくやるだろう？なぜだろう。 ``` #include <stdio.h> #include <string.h> struct st { int a; int b; }; struct st stg = {1, 2}; void init( struct st *str) { str = NULL; printf("%d, %d\n", stg.a, stg.b ); // memcpy(str, &stg, sizeof(stg)); str = &stg } int main(void) { struct st st1 = {0}; printf("%d\n", st1.a); init( &st1 ); printf("%d\n", st1.a); return 0; } ```
senooken's status on Tuesday, 18-Sep-2018 20:15:27 JST
今日詰まったこと。 C言語の引数のアドレスを変更できなかった。こんな感じで，引数に渡したポインターに別のポインターを渡して，出力結果を渡そうとしたのだけど，だめだった。memcpyしたらいけたのだけど。なぜダメなのかがわからなかった。アドレスを書き換えたらダメなんだったたっけ？いや，でも引数にポインターを渡してそれを書き換えるというのはよくやるだろう？なぜだろう。 ``` #include <stdio.h> #include <string.h> struct st { int a; int b; }; struct st stg = {1, 2}; void init( struct st *str) { str = NULL; printf("%d, %d\n", stg.a, stg.b ); // memcpy(str, &stg, sizeof(stg)); str = &stg } int main(void) { struct st st1 = {0}; printf("%d\n", st1.a); init( &st1 ); printf("%d\n", st1.a); return 0; } ```
zundan@mastodon.zunda.ninja: Cの文字列演算ちょっと気持ちわるいのあるよね（おかげでマクロが捗る）$ echo $LANG en_US.UTF-8 $ cat string.c #include <stdio.h> #include <stdlib.h>int main(void) { puts("それは" "そうかも" "しれないね"); return 0; } $ clang string.c && ./a.out それはそうかもしれないね
zundan@mastodon.zunda.ninja's status on Tuesday, 18-Sep-2018 16:06:59 JST
Cの文字列演算ちょっと気持ちわるいのあるよね（おかげでマクロが捗る） $ echo $LANG en_US.UTF-8 $ cat string.c #include <stdio.h> #include <stdlib.h> int main(void) { puts("それは" "そうかも" "しれないね"); return 0; } $ clang string.c && ./a.out それはそうかもしれないね
zundan@mastodon.zunda.ninja: うーん、やっぱり整数のみの気のする$ cat main.c #include <stdio.h> #include <stdlib.h>int main(void) { printf("010: %d\n", 010); printf("00000.1: %f\n", 00000.1); return 0; } $ clang main.c && ./a.out 010: 8 00000.1: 0.100000
zundan@mastodon.zunda.ninja's status on Tuesday, 18-Sep-2018 15:50:17 JST
うーん、やっぱり整数のみの気のする $ cat main.c #include <stdio.h> #include <stdlib.h> int main(void) { printf("010: %d\n", 010); printf("00000.1: %f\n", 00000.1); return 0; } $ clang main.c && ./a.out 010: 8 00000.1: 0.100000
kkamiyama: @kiki #include <stdio.h> void jp_kimoi() { printf("jpキモいよぉ…\n"); jp_kimoi(); } int main() { jp_kimoi(); }
kkamiyama's status on Sunday, 16-Sep-2018 10:15:16 JST
@kiki #include <stdio.h> void jp_kimoi() { printf("jpキモいよぉ…\n"); jp_kimoi(); } int main() { jp_kimoi(); }
yumetodo: はろーやーやーみなさん と迷ったけど、ここはいつものありきたりなほうで行ってみた。```cpp #include <iostream> int main() { std::cout << "arikitari_na_sekai" << std::endl; } ```
yumetodo's status on Tuesday, 28-Aug-2018 17:55:23 JST
はろーやーやーみなさん と迷ったけど、ここはいつものありきたりなほうで行ってみた。 ```cpp #include <iostream> int main() { std::cout << "arikitari_na_sekai" << std::endl; } ```
sh@gamelinks007.net: #include <iostream>int main(){ std::cout << "Hello C++"; return 0; }これが
sh@gamelinks007.net's status on Saturday, 18-Aug-2018 18:20:40 JST
#include <iostream> int main(){ std::cout << "Hello C++"; return 0; } これが
senooken: ああ。ちょっと違うけどうまくいった。 ポイントはこれ。キャストして間接参照。 printf("found: %d\n", *(int *)entry); // ここが@になる /////////////////////////////////////////////////////////////////////////////// /// \file find_array.c /// \author SENOO, Ken /////////////////////////////////////////////////////////////////////////////// #include <stdio.h> #include <search.h> #include <string.h> int main(void) { // char *tab[] = { // "auto", // "break" // }; int tab[] = {1, 2, 3}; size_t nel = sizeof(tab)/sizeof(tab[0]); // char *target = "break"; // char *entry = lfind(&target, tab, &nel, sizeof(tab[0]), (int (*)(const void *, const void*))strcmp); // void *entry = lfind(&(void *){"break"}, tab, &nel, sizeof(tab[0]), (int (*)(const void *, const void*))strcmp); void *entry = lfind(&(int){2}, tab, &nel, sizeof(tab[0]), (int (*)(const void *, const void*))strcmp); if (entry) { printf("found: %p\n", (void *)tab); printf("found: entry:%p\n", entry); printf("found: %d:%p\n", tab[1], (void *)&tab[1]); printf("found: %d\n", *(int *)entry); // ここが@になる } else { puts("NOT FOUND"); } return 0; }
senooken's status on Monday, 02-Jul-2018 20:45:11 JST
ああ。ちょっと違うけどうまくいった。 ポイントはこれ。キャストして間接参照。 printf("found: %d\n", *(int *)entry); // ここが@になる /////////////////////////////////////////////////////////////////////////////// /// \file find_array.c /// \author SENOO, Ken /////////////////////////////////////////////////////////////////////////////// #include <stdio.h> #include <search.h> #include <string.h> int main(void) { // char *tab[] = { // "auto", // "break" // }; int tab[] = {1, 2, 3}; size_t nel = sizeof(tab)/sizeof(tab[0]); // char *target = "break"; // char *entry = lfind(&target, tab, &nel, sizeof(tab[0]), (int (*)(const void *, const void*))strcmp); // void *entry = lfind(&(void *){"break"}, tab, &nel, sizeof(tab[0]), (int (*)(const void *, const void*))strcmp); void *entry = lfind(&(int){2}, tab, &nel, sizeof(tab[0]), (int (*)(const void *, const void*))strcmp); if (entry) { printf("found: %p\n", (void *)tab); printf("found: entry:%p\n", entry); printf("found: %d:%p\n", tab[1], (void *)&tab[1]); printf("found: %d\n", *(int *)entry); // ここが@になる } else { puts("NOT FOUND"); } return 0; }
senooken: わからない。なぜ，これで@が表示されるんだ？ /////////////////////////////////////////////////////////////////////////////// /// \file find_array.c /// \author SENOO, Ken /////////////////////////////////////////////////////////////////////////////// #include <stdio.h> #include <search.h> #include <string.h> int main(void) { char *tab[] = { "auto", "break" }; size_t nel = sizeof(tab)/sizeof(tab[0]); // char *target = "break"; // char *entry = lfind(&target, tab, &nel, sizeof(tab[0]), (int (*)(const void *, const void*))strcmp); void *entry = lfind(&(void *){"break"}, tab, &nel, sizeof(tab[0]), (int (*)(const void *, const void*))strcmp); if (entry) { printf("found: %p\n", (void *)tab); printf("found: entry:%p\n", entry); printf("found: %s:%p\n", tab[1], (void *)&tab[1]); printf("found: %s\n", (char *)entry); // ここが@になる } else { puts("NOT FOUND"); } return 0; }
senooken's status on Monday, 02-Jul-2018 20:37:09 JST
わからない。なぜ，これで@が表示されるんだ？ /////////////////////////////////////////////////////////////////////////////// /// \file find_array.c /// \author SENOO, Ken /////////////////////////////////////////////////////////////////////////////// #include <stdio.h> #include <search.h> #include <string.h> int main(void) { char *tab[] = { "auto", "break" }; size_t nel = sizeof(tab)/sizeof(tab[0]); // char *target = "break"; // char *entry = lfind(&target, tab, &nel, sizeof(tab[0]), (int (*)(const void *, const void*))strcmp); void *entry = lfind(&(void *){"break"}, tab, &nel, sizeof(tab[0]), (int (*)(const void *, const void*))strcmp); if (entry) { printf("found: %p\n", (void *)tab); printf("found: entry:%p\n", entry); printf("found: %s:%p\n", tab[1], (void *)&tab[1]); printf("found: %s\n", (char *)entry); // ここが@になる } else { puts("NOT FOUND"); } return 0; }
senooken: こんな感じでかなりいいところまでいけている。だけど，lfindで取得したものはポインターなんだけど，ここにマッチした文字列がうまくとれない。アドレスが入っているなら*で取れるかと思ったけどだめ。検索のキーで参照自体はできるのだけど。もどかしい。 /////////////////////////////////////////////////////////////////////////////// /// \file find_array.c /// \author SENOO, Ken /////////////////////////////////////////////////////////////////////////////// #include <stdio.h> #include <search.h> #include <string.h> int main(void) { static const char *tab[] = { "auto", "break" }; size_t nel = sizeof(tab)/sizeof(tab[0]); // char *target = "break"; // char *entry = lfind(&target, tab, &nel, sizeof(tab[0]), (int (*)(const void *, const void*))strcmp); char *entry = lfind(&(void *){"break"}, tab, &nel, sizeof(tab[0]), (int (*)(const void *, const void*))strcmp); if (entry) { printf("found: %s\n", "break"); } else { puts("NOT FOUND"); } return 0; }
senooken's status on Saturday, 23-Jun-2018 02:38:17 JST
こんな感じでかなりいいところまでいけている。だけど，lfindで取得したものはポインターなんだけど，ここにマッチした文字列がうまくとれない。アドレスが入っているなら*で取れるかと思ったけどだめ。検索のキーで参照自体はできるのだけど。もどかしい。 /////////////////////////////////////////////////////////////////////////////// /// \file find_array.c /// \author SENOO, Ken /////////////////////////////////////////////////////////////////////////////// #include <stdio.h> #include <search.h> #include <string.h> int main(void) { static const char *tab[] = { "auto", "break" }; size_t nel = sizeof(tab)/sizeof(tab[0]); // char *target = "break"; // char *entry = lfind(&target, tab, &nel, sizeof(tab[0]), (int (*)(const void *, const void*))strcmp); char *entry = lfind(&(void *){"break"}, tab, &nel, sizeof(tab[0]), (int (*)(const void *, const void*))strcmp); if (entry) { printf("found: %s\n", "break"); } else { puts("NOT FOUND"); } return 0; }