<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://crteknologies.fr/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://crteknologies.fr/wiki/feed.php">
        <title>CR-TEKnologies programming</title>
        <description></description>
        <link>https://crteknologies.fr/wiki/</link>
        <image rdf:resource="https://crteknologies.fr/wiki/lib/tpl/arctic/images/favicon.ico" />
       <dc:date>2026-04-14T20:04:12+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://crteknologies.fr/wiki/programming:c-cpp-performance?rev=1379608859&amp;do=diff"/>
                <rdf:li rdf:resource="https://crteknologies.fr/wiki/programming:cpp-style-tips?rev=1379608860&amp;do=diff"/>
                <rdf:li rdf:resource="https://crteknologies.fr/wiki/programming:debug?rev=1379608860&amp;do=diff"/>
                <rdf:li rdf:resource="https://crteknologies.fr/wiki/programming:howtos-tips?rev=1397671624&amp;do=diff"/>
                <rdf:li rdf:resource="https://crteknologies.fr/wiki/programming:improve-your-cpp?rev=1379608859&amp;do=diff"/>
                <rdf:li rdf:resource="https://crteknologies.fr/wiki/programming:instruction-timings?rev=1379608860&amp;do=diff"/>
                <rdf:li rdf:resource="https://crteknologies.fr/wiki/programming:latex?rev=1379608858&amp;do=diff"/>
                <rdf:li rdf:resource="https://crteknologies.fr/wiki/programming:makefiles?rev=1379608860&amp;do=diff"/>
                <rdf:li rdf:resource="https://crteknologies.fr/wiki/programming:ruby?rev=1379608860&amp;do=diff"/>
                <rdf:li rdf:resource="https://crteknologies.fr/wiki/programming:stl?rev=1379608860&amp;do=diff"/>
                <rdf:li rdf:resource="https://crteknologies.fr/wiki/programming:visual-studio?rev=1379608860&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://crteknologies.fr/wiki/lib/tpl/arctic/images/favicon.ico">
        <title>CR-TEKnologies</title>
        <link>https://crteknologies.fr/wiki/</link>
        <url>https://crteknologies.fr/wiki/lib/tpl/arctic/images/favicon.ico</url>
    </image>
    <item rdf:about="https://crteknologies.fr/wiki/programming:c-cpp-performance?rev=1379608859&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-09-19T16:40:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>programming:c-cpp-performance</title>
        <link>https://crteknologies.fr/wiki/programming:c-cpp-performance?rev=1379608859&amp;do=diff</link>
        <description>Performance in C/C++

Inline and macros

Inlining short functions which are often called is very important for performance.

Macros

In C you can use macros :


#define sqr(x) (x)*(x)


But be careful, macros are very dangerous. 

For example parenthesis around</description>
    </item>
    <item rdf:about="https://crteknologies.fr/wiki/programming:cpp-style-tips?rev=1379608860&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-09-19T16:41:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>programming:cpp-style-tips</title>
        <link>https://crteknologies.fr/wiki/programming:cpp-style-tips?rev=1379608860&amp;do=diff</link>
        <description>C++ style tips

Modular architecture

It is a very good thing to make a modular architecture. It permits creating several implementation for one functionnality (several ways to do it), and to easily switch from one to the other, or change a part of the program.</description>
    </item>
    <item rdf:about="https://crteknologies.fr/wiki/programming:debug?rev=1379608860&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-09-19T16:41:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>programming:debug</title>
        <link>https://crteknologies.fr/wiki/programming:debug?rev=1379608860&amp;do=diff</link>
        <description>Debugging

If you look directly at gcc output, you should install ColorGCC which displays errors in red and warning in yellow.

Segmentation Faults

The crash occurs where the error is

It's the simpler case, which fortunately happens (null pointers, etc).</description>
    </item>
    <item rdf:about="https://crteknologies.fr/wiki/programming:howtos-tips?rev=1397671624&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-04-16T18:07:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>programming:howtos-tips</title>
        <link>https://crteknologies.fr/wiki/programming:howtos-tips?rev=1397671624&amp;do=diff</link>
        <description>Howtos and Tips

System

For details on functions search in the man page (man &lt;function-name&gt; or man -a &lt;function-name&gt; if there is also a unix command with same name), or search the web.

Catching signals

=&gt; C and C++.

You can catch ctrl-c or other signals, for example to clean up things before to quit.</description>
    </item>
    <item rdf:about="https://crteknologies.fr/wiki/programming:improve-your-cpp?rev=1379608859&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-09-19T16:40:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>programming:improve-your-cpp</title>
        <link>https://crteknologies.fr/wiki/programming:improve-your-cpp?rev=1379608859&amp;do=diff</link>
        <description>This page is based on the excellent books of Scott Meyers : Effective C++ (50 specific ways to improve your programs and designs) and More effective C++ (35 new ways to improve your programs and designs).

Effective C++

Shifting from C to C++

Item 1 : Use const and inline instead of #define</description>
    </item>
    <item rdf:about="https://crteknologies.fr/wiki/programming:instruction-timings?rev=1379608860&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-09-19T16:41:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>programming:instruction-timings</title>
        <link>https://crteknologies.fr/wiki/programming:instruction-timings?rev=1379608860&amp;do=diff</link>
        <description>Instruction timings

Here are some results of timings I've done of several instructions in C/C++, to compare several ways to do one thing.

Proceeding

FIXME

Summary of results

Depending on machines, floating point operations can be a lot slower than integer operations, or as fast, or even faster.</description>
    </item>
    <item rdf:about="https://crteknologies.fr/wiki/programming:latex?rev=1379608858&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-09-19T16:40:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>programming:latex</title>
        <link>https://crteknologies.fr/wiki/programming:latex?rev=1379608858&amp;do=diff</link>
        <description>Latex

Use latex !

Software

For Windows I recommend using MikTeX distribution, and TeXnicCenter which is an excellent latex editor (keyboard shortcuts etc).

With Linux I use TeTex distribution, and a normal text editor (Scite or Kate) or Kile which is a good latex editor (integrated compilation).</description>
    </item>
    <item rdf:about="https://crteknologies.fr/wiki/programming:makefiles?rev=1379608860&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-09-19T16:41:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>programming:makefiles</title>
        <link>https://crteknologies.fr/wiki/programming:makefiles?rev=1379608860&amp;do=diff</link>
        <description>Makefiles

Makefiles are very useful to automate compilation of multi-file projects in c/c++ with Linux.

Syntax

	*  variables: 


&lt;VARIABLE&gt;=&lt;string&gt; # init
$(&lt;VARIABLE&gt;)       # get content


	*  targets:


&lt;target&gt;: &lt;prerequisite-targets&gt;
	&lt;code-to-execute&gt;</description>
    </item>
    <item rdf:about="https://crteknologies.fr/wiki/programming:ruby?rev=1379608860&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-09-19T16:41:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>programming:ruby</title>
        <link>https://crteknologies.fr/wiki/programming:ruby?rev=1379608860&amp;do=diff</link>
        <description>Ruby

Memento


require 'jafar/module'
load 'script-file.rb'</description>
    </item>
    <item rdf:about="https://crteknologies.fr/wiki/programming:stl?rev=1379608860&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-09-19T16:41:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>programming:stl</title>
        <link>https://crteknologies.fr/wiki/programming:stl?rev=1379608860&amp;do=diff</link>
        <description>STL

Erasing elements in a loop

Map

Erasing an element does not invalidate other iterators.


  bool erase_i;
  for(std::map&lt;int,int&gt;::iterator i = myMap.begin(); i != myMap.end(); erase_i ? myMap.erase(i++) : ++i)
  {
    erase_i = false;
    ...
    if (want_erase) erase_i = true;
    ...
  }</description>
    </item>
    <item rdf:about="https://crteknologies.fr/wiki/programming:visual-studio?rev=1379608860&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-09-19T16:41:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>programming:visual-studio</title>
        <link>https://crteknologies.fr/wiki/programming:visual-studio?rev=1379608860&amp;do=diff</link>
        <description>Visual Studio tips

Useful features for debugging

You probably already know classical features such as step-by-step execution (Step Into or Step Over to enter or not in functions) with breakpoints (conditions, count, disabling etc), Watch window, etc.</description>
    </item>
</rdf:RDF>
