On Wed, May 22, 2013 at 9:18 PM, Carlos Nepomuceno < carlosnepomuc...@outlook.com> wrote:
> ________________________________ > > From: eli...@gmail.com > [...] > > I've found the following declaration in 'Objects/stringobject.c' but it > > just defines _Py_InsertThousandsGrouping() as > > _PyString_InsertThousandsGrouping(): > > > > "#define _Py_InsertThousandsGrouping _PyString_InsertThousandsGrouping" > > > > I'm looking for the opposite! > > > > No, you aren't :-) > > > > #define _Py_InsertThousandsGrouping _PyString_InsertThousandsGrouping > > #include "stringlib/localeutil.h" > > > > Now look inside "stringlib/localeutil.h" and think what the > > pre-processor does with the function definition having the #define > > above. > > > > Eli > > lol I can see clearly now! :p > > That reminds me of "Which came first, the chicken or the egg?" > > Thank you! Somehow I got intrigued by such use... > > Do you know why they've put a lot of source code inside the header files? > _______________________________________________ > > This depends per use-case. Commonly, code is placed in header files in C to achieve some sort of C++-template-like behavior with the preprocessor. In particular, I think Objects/stringlib/formatter.h does this. Note this comment near its top: /* Before including this, you must include either: stringlib/unicodedefs.h stringlib/stringdefs.h Also, you should define the names: FORMAT_STRING FORMAT_LONG FORMAT_FLOAT FORMAT_COMPLEX to be whatever you want the public names of these functions to be. These are the only non-static functions defined here. */ Eli
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com