mastodon.xyz is one of the many independent Mastodon servers you can use to participate in the fediverse.
A Mastodon instance, open to everyone, but mainly English and French speaking.

Administered by:

Server stats:

813
active users

#define

6 posts6 participants1 post today
Mitri Dat 🦉<p><span class="h-card" translate="no"><a href="https://mastodon.social/@rvps2001" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>rvps2001</span></a></span> "trained troops"... <br><a href="https://mastodon.social/tags/Define" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Define</span></a> "trained"<br>end</p>
Juno Jove<p><span class="h-card" translate="no"><a href="https://pounced-on.me/@nilsding" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>nilsding</span></a></span> </p><p>```<br><a href="https://mastodon.gamedev.place/tags/define" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>define</span></a> false maybe<br>return maybe;</p><p>//hey, i just met you!<br>```</p>
Jyrki :paw_nonbinary:<p>learning about "trailing return types" in C++ and this is what I have in mind now</p><pre><code>#define auto fn<br><br>fn isThisRust() -&gt; bool {<br> // nice try<br> return false;<br>}<br></code></pre>
Izumi Tsutsui<p>sys/arch/m88k/include/vmparam.h<br>で<br><a href="https://social.mikutter.hachune.net/tags/define" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>define</span></a> MAXTSIZ (32*1024*1024) /* max text size */<br>なので 32MB は厳しそう</p>
Félix<p><span class="h-card" translate="no"><a href="https://pony.social/@thephd" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>thephd</span></a></span><br>This works to define rsize_t:</p><p><a href="https://tech.lgbt/tags/define" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>define</span></a> __STDC_WANT_LIB_EXT1__ 1<br><a href="https://tech.lgbt/tags/include" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>include</span></a> &lt;string.h&gt;</p><p>use “xcrun clang -dD -E file.c”, do the same thing with the broken configuration, see where things go wrong. If you do find there’s a problem with the macOS SDK, that sounds fixable</p>
James Chip<p>*stares at code I just found*</p><p>the code:</p><p><a href="https://merveilles.town/tags/define" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>define</span></a> CFG01 const struct \<br>{ USB_CFG_DSC cd01; \<br> USB_INTF_DSC i00a00; \<br> USB_HID_DSC hid_i00a00; \<br> USB_EP_DSC ep01i_i00a00; \<br> USB_EP_DSC ep01o_i00a00; \<br>} cfg01</p><p>extern CFG01;</p>
wirepair<p>fucking hell winspool.h:</p><p><a href="https://mastodon.social/tags/ifdef" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ifdef</span></a> UNICODE<br><a href="https://mastodon.social/tags/define" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>define</span></a> AddJob AddJobW<br><a href="https://mastodon.social/tags/else" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>else</span></a><br><a href="https://mastodon.social/tags/define" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>define</span></a> AddJob AddJobA<br><a href="https://mastodon.social/tags/endif" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>endif</span></a> // !UNICODE</p><p>Jolt defines a class method called...<br>virtual void AddJob(const JobHandle &amp;inJob) override;</p><p>guess some ordering got re-arranged and now my shit is conflicting</p>
Jann Horn<p>inspired by <span class="h-card" translate="no"><a href="https://hachyderm.io/@pinskia" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>pinskia</span></a></span> mentioning <code>musttail</code>, today I learned that you can implement state machines in C such that state transitions are implemented as calls:</p><pre><code>#include &lt;stdlib.h&gt;<br>#include &lt;stdio.h&gt;<br><br>#define VOID __attribute__((noinline)) void<br>#define JUMP [[clang::musttail]] return<br><br>static char *input;<br>static int acc = 0;<br>static int state = 0;<br><br>VOID initial_state(void);<br><br>VOID digit(void) {<br> acc += *(input++) - '0';<br> JUMP initial_state();<br>}<br>VOID separator(void) {<br> state = acc;<br> acc = 0;<br> input++;<br> JUMP initial_state();<br>}<br>VOID add(void) {<br> state += acc;<br> acc = 0;<br> input++;<br> JUMP initial_state();<br>}<br>VOID minus(void) {<br> state -= acc;<br> acc = 0;<br> input++;<br> JUMP initial_state();<br>}<br><br>VOID initial_state(void) {<br> switch (*input) {<br> case '0'...'9':<br> JUMP digit();<br> case ' ':<br> JUMP separator();<br> case '+':<br> JUMP add();<br> case '-':<br> JUMP minus();<br> default:<br> printf("result: %d\n", state);<br> exit(0);<br> }<br>}<br><br>int main(int argc, char **argv) {<br> puts("welcome to my calculator");<br> input = argv[1];<br> initial_state();<br>}<br></code></pre><p>compiles to stuff like this, all jumps:</p><pre><code>add:<br> mov eax, dword ptr [rip + acc]<br> add dword ptr [rip + state], eax<br> mov dword ptr [rip + acc], 0<br> inc qword ptr [rip + input]<br> jmp initial_state<br></code></pre><p>And the security benefits are obvious! The less stack you have, the less potential for the stack pointer being hijacked! 😆</p>
Toby Jaffey<p><span class="h-card" translate="no"><a href="https://mstdn.social/@stevensanderson" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>stevensanderson</span></a></span> Nice!</p><p>A tiny improvement:<br>In Step 4, when using fgets() to read, it's good to ensure you're using the same size in the declaration as the fgets() to avoid them getting out of sync</p><p>Either:<br><a href="https://mastodon.me.uk/tags/define" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>define</span></a> BUFSZ 100<br>...<br>char buffer[BUFSZ];<br>...<br>fgets(buffer, BUFSZ, fptr);</p><p>Or, as you're working with a stack array, you can do:<br>char buffer[100];<br>...<br>fgets(buffer, sizeof(buffer), fptr);<br>Later, in the record system, you can do the same with:<br>fgets(student.name, sizeof(student.name), stdin);</p>
pwm<p><span class="h-card"><a class="u-url mention" href="https://clubcyberia.co/users/RustyCrab" rel="nofollow noopener noreferrer" target="_blank">@<span>RustyCrab</span></a></span> <span class="h-card"><a class="u-url mention" href="https://socially.drinkingatmy.computer/users/prettygood" rel="nofollow noopener noreferrer" target="_blank">@<span>prettygood</span></a></span> </p><pre><code>/* Exit with a status code indicating success. Copyright (C) 1999-2025 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;. */ <a class="hashtag" href="https://darkdork.dev/tag/include" rel="nofollow noopener noreferrer" target="_blank">#include</a> &lt;config.h&gt; <a class="hashtag" href="https://darkdork.dev/tag/include" rel="nofollow noopener noreferrer" target="_blank">#include</a> &lt;stdio.h&gt; <a class="hashtag" href="https://darkdork.dev/tag/include" rel="nofollow noopener noreferrer" target="_blank">#include</a> &lt;sys/types.h&gt; <a class="hashtag" href="https://darkdork.dev/tag/include" rel="nofollow noopener noreferrer" target="_blank">#include</a> "system.h" /* Act like "true" by default; false.c overrides this. */ <a class="hashtag" href="https://darkdork.dev/tag/ifndef" rel="nofollow noopener noreferrer" target="_blank">#ifndef</a> EXIT_STATUS # define EXIT_STATUS EXIT_SUCCESS <a class="hashtag" href="https://darkdork.dev/tag/endif" rel="nofollow noopener noreferrer" target="_blank">#endif</a> <a class="hashtag" href="https://darkdork.dev/tag/if" rel="nofollow noopener noreferrer" target="_blank">#if</a> EXIT_STATUS == EXIT_SUCCESS # define PROGRAM_NAME "true" <a class="hashtag" href="https://darkdork.dev/tag/else" rel="nofollow noopener noreferrer" target="_blank">#else</a> # define PROGRAM_NAME "false" <a class="hashtag" href="https://darkdork.dev/tag/endif" rel="nofollow noopener noreferrer" target="_blank">#endif</a> <a class="hashtag" href="https://darkdork.dev/tag/define" rel="nofollow noopener noreferrer" target="_blank">#define</a> AUTHORS proper_name ("Jim Meyering") void usage (int status) { printf (_("\ Usage: %s [ignored command line arguments]\n\ or: %s OPTION\n\ "), program_name, program_name); printf ("%s\n\n", _(EXIT_STATUS == EXIT_SUCCESS ? N_("Exit with a status code indicating success.") : N_("Exit with a status code indicating failure."))); fputs (HELP_OPTION_DESCRIPTION, stdout); fputs (VERSION_OPTION_DESCRIPTION, stdout); printf (USAGE_BUILTIN_WARNING, PROGRAM_NAME); emit_ancillary_info (PROGRAM_NAME); exit (status); } int main (int argc, char **argv) { /* Recognize --help or --version only if it's the only command-line argument. */ if (argc == 2) { initialize_main (&amp;argc, &amp;argv); set_program_name (argv[0]); setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); /* Note true(1) will return EXIT_FAILURE in the edge case where writes fail with GNU specific options. */ atexit (close_stdout); if (STREQ (argv[1], "--help")) usage (EXIT_STATUS); if (STREQ (argv[1], "--version")) version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, Version, AUTHORS, (char *) nullptr); } return EXIT_STATUS; } </code></pre>
Foone🏳️‍⚧️<p>I love finding a function that does nothing and is called from 100 places with a debug string.</p><p>SOMEONE TURNED OFF A <a href="https://digipres.club/tags/DEFINE" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>DEFINE</span></a> AND THEIR COMPILER DOESN'T KNOW WHAT OPTIMIZATION IS</p>
Lorenzo Stoakes<p><span class="h-card" translate="no"><a href="https://infosec.exchange/@jann" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>jann</span></a></span> I mean equally:</p><p><a href="https://fosstodon.org/tags/define" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>define</span></a> _GNU_SOURCE<br><a href="https://fosstodon.org/tags/include" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>include</span></a> &lt;err.h&gt;<br><a href="https://fosstodon.org/tags/include" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>include</span></a> &lt;stdio.h&gt;<br><a href="https://fosstodon.org/tags/include" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>include</span></a> &lt;sys/mman.h&gt;<br>int main(void) {<br> char *p = mmap(NULL, 0x2000, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -1, 0);<br> if (p == MAP_FAILED) err(1, "mmap");<br> p[0x1000] = 'X';<br> if (madvise(&amp;p[0x1000], 0x1000, MADV_DONTNEED)) err(1, "madvise");<br> // that 'X' we just wrote... is it gone?<br> // nope, let's bring it back!<br> printf("p[0x1000]='%c'\n", p[0x1000]);<br>}</p>
Jann Horn<p>fun Linux fact: because <code>MAP_SHARED|MAP_ANONYMOUS</code> is actually a file-backed mapping under the hood, unmapping part of such a mapping does not discard the data stored in that part:</p><pre><code>$ cat mremap.c<br>#define _GNU_SOURCE<br>#include &lt;err.h&gt;<br>#include &lt;stdio.h&gt;<br>#include &lt;sys/mman.h&gt;<br>int main(void) {<br> char *p = mmap(NULL, 0x2000, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -1, 0);<br> if (p == MAP_FAILED) err(1, "mmap");<br> p[0x1000] = 'X';<br> if (munmap(p+0x1000, 0x1000)) err(1, "munmap");<br> // that 'X' we just wrote... is it gone?<br> // nope, let's bring it back!<br> p = mremap(p, 0x1000, 0x2000, MREMAP_MAYMOVE);<br> if (p == MAP_FAILED) err(1, "mremap");<br> printf("p[0x1000]='%c'\n", p[0x1000]);<br>}<br>$ gcc -o mremap mremap.c<br>$ ./mremap<br>p[0x1000]='X'<br>$<br></code></pre>
Mike Taylor 🦕<p>I've been coding in C for about 20 years, and about five years ago I spent an hour chasing a case where I'd done if (strcmp(arg, "foo")) instead of if (!strcmp(arg, "foo")).</p><p>Now I religiously <a href="https://sauropods.win/tags/define" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>define</span></a> streq(a, b) (!strcmp((a),(b))) because I know I'm not as smart as I think I am.</p><p><a href="https://ozlabs.org/~rusty/index.cgi/tech/2008-04-01.html" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">ozlabs.org/~rusty/index.cgi/te</span><span class="invisible">ch/2008-04-01.html</span></a></p>
Jevin Sweval<p><span class="h-card" translate="no"><a href="https://infosec.space/@siguza" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>siguza</span></a></span> Get a new bible.</p><p>Try this with Xcode 16.3:</p><p>extern int foo(void);</p><p><a href="https://mastodon.social/tags/define" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>define</span></a> V(x) __attribute__((target_version(x)))</p><p>V("sha2") int foo(void) { return 2; }<br>V("default") int foo(void) { return 0; }</p>
Stylus<p><span class="h-card" translate="no"><a href="https://sparkly.uni.horse/@emily" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>emily</span></a></span> omg you're not pulling my leg</p><pre><code>#define XF86XK_Calculator 0x1008FF1D /* Invoke calculator program */<br>#define XF86XK_Calculater 0x1008FF54 /* Launch Calculater */<br></code></pre>
Izumi Tsutsui<p>/home/runner/work/netbsd-src/netbsd-src/src/tools/hp300-mkboot/../../sys/arch/hp300/stand/mkboot/mkboot.c: In function 'main':<br>/home/runner/work/netbsd-src/netbsd-src/src/tools/compat/../../sys/sys/bootblock.h:994:34: error: 'LIF_NUMDIR' undeclared (first use in this function); did you mean 'HPPA_LIF_NUMDIR'?<br> 994 | <a href="https://social.mikutter.hachune.net/tags/define" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>define</span></a> HP300_LIF_DIRSIZE (LIF_NUMDIR * sizeof(struct hp300_lifdir))<br> | ^~~~~~~~~~</p><p>またミスっている</p>
Andreas Fink<p><span class="h-card" translate="no"><a href="https://tapbots.social/@paul" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>paul</span></a></span> const NSString *aaa=... . on the other hand NSString is immutable anyway. So <a href="https://mastodon.sl/tags/define" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>define</span></a> aaa =@"..." would do too</p>
Hubert Figuière<p>Implicit member variables (in C++).</p><p>Now let's use <a href="https://cosocial.ca/tags/define" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>define</span></a> to shadow the variable as field of a struct field of a scruct. Something like that.</p><p>Pointer as array as pointer and the associated arithmetics. Where are we in the buffer again?</p><p>Also for loops assign and compare and assign. And of course at lot of UB.</p><p>Etc.</p>
Al Sutton<p><span class="h-card" translate="no"><a href="https://fosstodon.org/@jbqueru" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>jbqueru</span></a></span> </p><p><a href="https://snapp.social/tags/define" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>define</span></a> OK 200</p><p>what could possibly go wrong? :)</p>