<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JB Enterprises – Johan Bezem &#187; keyword</title>
	<atom:link href="http://www.bezem.de/tag/keyword/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bezem.de</link>
	<description>Development &#38; Project Management</description>
	<lastBuildDate>Tue, 24 Jan 2012 18:22:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Finally: A list of C (and C++) keywords including C11 (and C++11)</title>
		<link>http://www.bezem.de/2012/01/finally-a-list-of-c-and-c-keywords-including-c11-and-c11/</link>
		<comments>http://www.bezem.de/2012/01/finally-a-list-of-c-and-c-keywords-including-c11-and-c11/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 18:22:17 +0000</pubDate>
		<dc:creator>Johan Bezem</dc:creator>
				<category><![CDATA[C Programming]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[c11]]></category>
		<category><![CDATA[keyword]]></category>
		<category><![CDATA[standard]]></category>

		<guid isPermaLink="false">http://www.bezem.de/?p=370</guid>
		<description><![CDATA[A list of C and C++ keywords and their origins, to be found in my <a href="http://www.bezem.de/pdf/ReservedWordsInC.pdf">PDF collection</a>.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while, but now I have some news: Since I didn&#8217;t receive much response to requests in <a href="http://stackoverflow.com/q/8139659/1029106">StackOverflow</a> nor on my blog, I decided to create such a list myself. The preliminary output can be found <a href="http://www.bezem.de/pdf/ReservedWordsInC.pdf">here</a>, as a PDF as usual. It&#8217;s version 0.4 for now, and not fully complete, but I&#8217;ve added several sources, from pre-K&#038;R to C11, and from C++ 1st edition (1985), to C++11.<br/> If you find inaccuracies, please let me know, either as a comment, or by email. I intend to bring out updated editions whenever new info warrants it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bezem.de/2012/01/finally-a-list-of-c-and-c-keywords-including-c11-and-c11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming in the C/C++ realm: Identifier names to avoid &#8211; or not?</title>
		<link>http://www.bezem.de/2009/11/programming-in-the-cc-realm-identifier-names-to-avoid-or-not/</link>
		<comments>http://www.bezem.de/2009/11/programming-in-the-cc-realm-identifier-names-to-avoid-or-not/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 20:57:24 +0000</pubDate>
		<dc:creator>Johan Bezem</dc:creator>
				<category><![CDATA[C Programming]]></category>
		<category><![CDATA[identifier name]]></category>
		<category><![CDATA[keyword]]></category>
		<category><![CDATA[standard]]></category>

		<guid isPermaLink="false">http://www.bezem.de/?p=267</guid>
		<description><![CDATA[The difficulties of finding all keywords from the C/C++ realm, to be avoided when choosing identifier names.]]></description>
			<content:encoded><![CDATA[<p>The C family of languages has been around for a while, has evolved, grown, sprouted a few branches and now provides several paths for &#8216;growth&#8217;. Starting out in the seventies, standardized in the eighties, C++ in the nineties, standardized even more recently, industry-standard variants available for embedded (C++), and new standardization efforts on the way. Wonderful!<br />
Currently, just as many times before, I&#8217;m working on a project with fairly high safety requirements, programmed in C. Not C99, but C89 with a few compiler extensions for embedded programming. Not because C++ or at least C99 is not available, but because of the inertia of legacy code, and the experience level of the (otherwise highly skilled) developers. You don&#8217;t turn a team of experts in C into a team of experts in C++ within a few weeks, and the project&#8217;s goals take priority always.<br />
A few weeks ago I was looking at a piece of code like this:<br />
<code>ui32 calculate_difference(ui32 old, ui32 new) { ... }</code><br />
That gave me pause. Yes, it&#8217;s perfectly OK for C89, even C99 will not complain. But do I really want to use a C++ keyword in my C code? If ever I get to move to C++, my code <strong>must</strong> break!<br />
Having been a brief and passing guest at the <a href="http://www.open-std.org/JTC1/SC22/WG21/docs/meetings">C++ WG21 July 2009 meeting in Frankfurt</a>, I started off on some research. (This list is just for illustration, not for completeness)</p>
<ul>
<li>An interesting keyword from the old days has been forgotten since C89: <code>entry</code></li>
<li>C89 introduced a new keyword <code>void</code></li>
<li>AMD1 introduced some new semi-keywords: <code>or_eq</code>, <code>and_eq</code>. These are not keywords in the pure sense, but you might still want to avoid them as identifier names</li>
<li>C99 added at least one more: <code>restrict</code></li>
<li>C++ adds a whole army of keywords: <code>static_cast</code>, <code>template</code>, <code>class</code></li>
<li>The coming C/C++ standards will add several more: <code>_Complex</code>, <code>_Imaginary</code></li>
</ul>
<p>So I&#8217;m now trying to find out answers to the following question: What identifier names would I want to avoid in my code, considering the vast realm of C/C++ language variants and dialects. So I started off with the keywords of all standards; then I looked into the coming standards, then I looked at the might-be keywords, packaged as macros, like complex, imaginary, decimal64, etc. The list grew, I lost my overview, however slim it had been, and I didn&#8217;t even start on the various (Standard!) libraries!<br />
I&#8217;m now starting on a more structured approach. A <a href="https://twitter.com/LintTweets">quick tweet</a> didn&#8217;t get me any response. Many overviews on the net present parts, but nothing comprehensive as far as I&#8217;ve seen, so I guess I&#8217;ll have to roll my own.<br />
If you happen to know a source of information on this, please do let me know, either as comment, or by email. I&#8217;d be more than interested.<br />
And whether you do or don&#8217;t, you&#8217;re welcome to come back here occasionally, as I&#8217;ll be reporting my findings.<br />
Happy coding!</p>
<p>Johan</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bezem.de/2009/11/programming-in-the-cc-realm-identifier-names-to-avoid-or-not/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

