On Tuesday, 14 March 2023 at 05:47:35 UTC, Jeremy wrote:
Hi, in C and C++ you can use #define to substitute a value in place of an identifier while preprocessing. If you initialize a new string and don't change its value after that, will the compiler substitute the string identifier with its value, like #define in C, or will it make a string in memory and refer to that?

In D, you can get #define-like behavior by declaring the string as a [manifest constant][1], like this:

```d
enum myString = "hello";
```

For more tips on how to translate C preprocessor idioms to D, take a look at ["The C Preprocessor vs D"][2] in the ["Articles" section][3] of dlang.org.

[1]: https://dlang.org/spec/enum.html#manifest_constants
[2]: https://dlang.org/articles/pretod.html
[3]: https://dlang.org/articles/index.html

Reply via email to