Path: csiph.com!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c,comp.lang.c++ Subject: New and improved version of cdecl Date: Wed, 22 Oct 2025 14:39:43 -0700 Organization: None to speak of Lines: 43 Message-ID: <87bjlyobts.fsf@example.invalid> MIME-Version: 1.0 Content-Type: text/plain Injection-Date: Wed, 22 Oct 2025 21:39:50 +0000 (UTC) Injection-Info: dont-email.me; posting-host="8b80f75fe5ebd907b779bcb9373cddf1"; logging-data="983705"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/jrFq0G9iFglAyivARcoCT" User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:1uZqyUw0hxzntzwwzqn4qf2rwRA= sha1:b5Srm8IkKYiZNxvnjOFwx15W3YU= Xref: csiph.com comp.lang.c:394664 comp.lang.c++:122869 This is cross-posted to comp.lang.c and comp.lang.c++. Consider redirecting followups as appropriate. cdecl, along with c++decl, is a tool that translates C or C++ declaration syntax into English, and vice versa. For example : $ cdecl Type `help' or `?' for help cdecl> explain const char *foo[42] declare foo as array 42 of pointer to const char cdecl> declare bar as pointer to function (void) returning int int (*bar)(void ) It's also available via the web site . The original version of cdecl was posted on comp.sources.unix, probably in the 1980s. "ridiculous_fish" added support for Apple's blocks syntax. That version, 2.5, is the one that's most widely available (it's provided by the "cdecl" package on Debian and Ubuntu) and used by the cdecl.org website. There's a newer fork of cdecl, available in source code at https://github.com/paul-j-lucas/cdecl/ It supports newer versions of C and C++ and adds a number of new features. See the README.md file, visible at the above URL, for more information. (It doesn't support Apple's block syntax.) There doesn't seem to be a binary distribution, but the latest source tarball is at https://github.com/paul-j-lucas/cdecl/releases/download/cdecl-18.5/cdecl-18.5.tar.gz It can be built on Unix-like systems with the usual "./configure; make; make install" sequence. To build from a copy of the git repo, run "./bootstrap" first to generate the "configure" script. -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com void Void(void) { Void(); } /* The recursive call of the void */