lab132 / krepel

2 stars 0 forks source link

preprocessor style #7

Closed Manuzor closed 9 years ago

Manuzor commented 9 years ago

Es gibt 3 möglichkeiten, wie wir preprocessor statements schreiben können:

// 1: flat
#include "stdio.h"

#ifdef WIN32
#ifdef KR_EXPORT
#define KR_API __declspec(dllexport)
#else
#define KR_API __declspec(dllimport)
#endif
#else
#define KR_EXPORT
#endif

// 2: everything indented
#include "stdio.h"

#ifdef WIN32
  #ifdef KR_EXPORT
    #define KR_API __declspec(dllexport)
  #else
    #define KR_API __declspec(dllimport)
  #endif
#else
  #define KR_EXPORT
#endif

// 3: everything but the hashtags indented
#include "stdio.h"

#ifdef WIN32
#  ifdef KR_EXPORT
#    define KR_API __declspec(dllexport)
#  else
#    define KR_API __declspec(dllimport)
#  endif
#else
#  define KR_EXPORT
#endif

Da 1. nie oft vorkommt, also dass #defines so verschachtelt sind, kann man das schon so machen, man kann ja noch leerzeilen lassen um zu gruppieren. Im großen und ganzen tendiere ich aber eher zu 2. oder 3.

Was sagst du dazu?

juliusf commented 9 years ago

ich denke, ich würde 2. bevorzugen.

  1. ist zu ünübersichtlich.

bei. weiss ich dass wahnsinnig werde mit den leading # am zeilenanfang.

Manuzor commented 9 years ago

alles klärchen. Wie siehts aus mit multi-line macros?

// 1: align backslashes as closely with the code in the same line
#define KR_UNIT_TEST(TheGroup, TheName) \
class TheGroup##TheName : public IUnitTest \
{ \
public: \
  void run() override final; \
}; \
/* ... etc ...*/

// 2: align backslashes in one column
#define KR_UNIT_TEST(TheGroup, TheName)    \
class TheGroup##TheName : public IUnitTest \
{                                          \
public:                                    \
  void run() override final;               \
};                                         \
/* ... etc ...*/

Ich finde 2. übersichtlicher, allerdings muss man halt bei jeder kleinen Änderung die backslashes wieder anpassen.

juliusf commented 9 years ago

sind immer ein schmerz im arsch :D ich bin aber 2 gewohnt. darum bin ich da bei dir.