You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> `HKEY_CLASSES_ROOT` and `HKCR` are equivalent; `HKEY_CURRENT_USER` and `HKCU` are equivalent; and so on.
44
+
> **`HKEY_CLASSES_ROOT`** and **`HKCR`** are equivalent; **`HKEY_CURRENT_USER`** and **`HKCU`** are equivalent; and so on.
40
45
41
-
A parse tree can add multiple keys and subkeys to the \<rootkey>. In doing so, it keeps a subkey's handle open until the parser has completed parsing all of its subkeys. This approach is more efficient than operating on a single key at a time, as seen in the following example:
46
+
A parse tree can add multiple keys and subkeys to the \<root-key>. The Registrar keeps each subkey handle open until the parser has completed parsing all of its subkeys. It's more efficient than operating on a single key at a time. Here's an example:
42
47
43
48
```rgs
44
49
HKEY_CLASSES_ROOT
@@ -53,8 +58,8 @@ HKEY_CLASSES_ROOT
53
58
}
54
59
```
55
60
56
-
Here, the Registrar initially opens (creates) `HKEY_CLASSES_ROOT\MyVeryOwnKey`. It then sees that `MyVeryOwnKey` has a subkey. Rather than close the key to `MyVeryOwnKey`, the Registrar retains the handle and opens (creates) `HasASubKey` using this parent handle. (The system registry can be slower when no parent handle is open.) Thus, opening `HKEY_CLASSES_ROOT\MyVeryOwnKey` and then opening `HasASubKey` with `MyVeryOwnKey` as the parent is faster than opening `MyVeryOwnKey`, closing `MyVeryOwnKey`, and then opening `MyVeryOwnKey\HasASubKey`.
61
+
Here, the Registrar initially opens (creates) `HKEY_CLASSES_ROOT\MyVeryOwnKey`. It then sees that `MyVeryOwnKey` has a subkey. Rather than close the key to `MyVeryOwnKey`, the Registrar keeps the handle and opens (creates) `HasASubKey` using this parent handle. (The system registry can be slower when no parent handle is open.) So, opening `HKEY_CLASSES_ROOT\MyVeryOwnKey` and then opening `HasASubKey` with `MyVeryOwnKey` as the parent is faster than opening `MyVeryOwnKey`, closing `MyVeryOwnKey`, and then opening `MyVeryOwnKey\HasASubKey`.
You can use this symbol together with `#if` or `#ifdef` to compile source code conditionally. The symbol definition remains in effect until it's redefined in the code, or is undefined in the code by an `#undef` directive.
21
21
22
-
**/D** has the same effect as a `#define` directive at the beginning of a source code file. The difference is that **/D** strips quotation marks on the command line, and a `#define` directive keeps them. You can have whitespace between the **/D** and the symbol. There can't be whitespace between the symbol and the equals sign, or between the equals sign and any value assigned.
22
+
**`/D`** has the same effect as a `#define` directive at the beginning of a source code file. The difference is that **`/D`** strips quotation marks on the command line, and a `#define` directive keeps them. You can have whitespace between the **`/D`** and the symbol. There can't be whitespace between the symbol and the equals sign, or between the equals sign and any value assigned.
23
23
24
24
By default, the value associated with a symbol is 1. For example, `/D name` is equivalent to `/D name=1`. In the example at the end of this article, the definition of `TEST` is shown to print `1`.
25
25
26
26
Compiling by using `/D name=` causes the symbol *name* to have no associated value. Although the symbol can still be used to conditionally compile code, it otherwise evaluates to nothing. In the example, if you compile by using `/DTEST=`, an error occurs. This behavior resembles the use of `#define` with or without a value.
27
27
28
-
The **/D** option doesn't support function-like macro definitions. To insert definitions that can't be defined on the command line, consider the [/FI (Name forced include file)](fi-name-forced-include-file.md) compiler option.
28
+
The **`/D`** option doesn't support function-like macro definitions. To insert definitions that can't be defined on the command line, consider the [`/FI` (Name forced include file)](fi-name-forced-include-file.md) compiler option.
29
29
30
-
You can use **/D** multiple times on the command line to define additional symbols. If the same symbol is defined more than once, the last definition is used.
30
+
You can use **`/D`** multiple times on the command line to define more symbols. If the same symbol is defined more than once, the last definition is used.
31
31
32
32
This command defines the symbol DEBUG in TEST.c:
33
33
34
34
```cmd
35
35
CL /DDEBUG TEST.C
36
36
```
37
37
38
-
This command removes all occurrences of the keyword `__far` in TEST.c:
38
+
This command removes all occurrences of the keyword **`__far`** in TEST.c:
39
39
40
40
```cmd
41
41
CL /D __far= TEST.C
42
42
```
43
43
44
-
The **CL** environment variable can't be set to a string that contains the equal sign. To use **/D** together with the **CL** environment variable, you must specify the number sign (`#`) instead of the equal sign:
44
+
The **CL** environment variable can't be set to a string that contains the equal sign. To use **`/D`** together with the **`CL`** environment variable, you must specify the number sign (`#`) instead of the equal sign:
45
45
46
46
```cmd
47
47
SET CL=/DTEST#0
@@ -57,11 +57,11 @@ CL /DTEST=%% TEST.C
57
57
58
58
1. Open the project **Property Pages** dialog box. For more information, see [Set C++ compiler and build properties in Visual Studio](../working-with-project-properties.md).
59
59
60
-
1.In the left pane, select **Configuration Properties**, **C/C++**, **Preprocessor**.
60
+
1.Select the **Configuration Properties** > **C/C++** > **Preprocessor** property page.
61
61
62
-
1.In the right pane, in the right-hand column of the **Preprocessor Definitions** property, open the drop-down menu and choose **Edit**.
62
+
1.Open the drop-down menu of the **Preprocessor Definitions** property and choose **Edit**.
63
63
64
-
1. In the **Preprocessor Definitions** dialog box, add (one per line), modify, or delete one or more definitions. Choose **OK** to save your changes.
64
+
1. In the **Preprocessor Definitions** dialog box, add, modify, or delete one or more definitions, one per line. Choose **OK** to save your changes.
65
65
66
66
You don't need to include the '/D' option prefix on the definitions you specify here. In the property page, definitions are separated by semicolons (`;`).
Causes the compiler to output a list of the include files. Nested include files are also displayed (files that are included from the files that you include).
10
+
Causes the compiler to output a list of the include files. The option also displays nested include files, that is, the files included by the files that you include.
11
11
12
12
## Syntax
13
13
14
-
```
15
-
/showIncludes
16
-
```
14
+
> **`/showIncludes`**
17
15
18
16
## Remarks
19
17
20
-
When an include file is encountered during compilation, a message is output, for example:
18
+
When the compiler comes to an include file during compilation, a message is output, as in this example:
21
19
22
-
```
20
+
```cmd
23
21
Note: including file: d:\MyDir\include\stdio.h
24
22
```
25
23
26
-
Nested include files are indicated by an indentation, one space for each level of nesting, for example:
24
+
Nested include files are indicated by an indentation, one space for each level of nesting, as in this example:
27
25
28
-
```
26
+
```cmd
29
27
Note: including file: d:\temp\1.h
30
28
Note: including file: d:\temp\2.h
31
29
```
32
30
33
-
In this case, `2.h` was included from within `1.h`, hence the indentation.
31
+
In this case, *`2.h`* was included from within *`1.h`*, causing the indentation.
34
32
35
-
The **/showIncludes** option emits to `stderr`, not `stdout`.
33
+
The **`/showIncludes`** option emits to `stderr`, not `stdout`.
36
34
37
35
### To set this compiler option in the Visual Studio development environment
38
36
39
37
1. Open the project's **Property Pages** dialog box. For details, see [Set C++ compiler and build properties in Visual Studio](../working-with-project-properties.md).
Copy file name to clipboardExpand all lines: docs/c-runtime-library/reference/lseek-lseeki64.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -50,7 +50,7 @@ For more information about these and other error codes, see [_doserrno, errno, _
50
50
51
51
The **_lseek** function moves the file pointer associated with *fd* to a new location that is *offset* bytes from *origin*. The next operation on the file occurs at the new location. The *origin* argument must be one of the following constants, which are defined in Stdio.h.
52
52
53
-
|*origin* value||
53
+
|*origin* value| Description |
54
54
|-|-|
55
55
|**SEEK_SET**| Beginning of the file. |
56
56
|**SEEK_CUR**| Current position of the file pointer. |
0 commit comments