Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
48b34df
Adjust some semicolon placements
Rageking8 Jul 15, 2025
1182285
Update metadata in `ctime_s` and variants reference
Rageking8 Jul 15, 2025
e67d868
Elide duplicate rows in tables
Rageking8 Jul 16, 2025
f4cab0c
Update metadata in 2 topics
Rageking8 Jul 16, 2025
3726539
Wrap multiple function prototypes in a line
Rageking8 Jul 18, 2025
96d5bba
Update metadata in 6 topics
Rageking8 Jul 18, 2025
ffe23f2
Add missing commas after "For more information"
Rageking8 Jul 20, 2025
a41a42b
Update metadata in a couple of topics
Rageking8 Jul 20, 2025
799ba57
Resolve mismatched "lt" and "gt" operator links
Rageking8 Jul 24, 2025
a24ed92
Update metadata in 11 topics
Rageking8 Jul 24, 2025
4d667ee
Elide parentheses around some "For more information..."
Rageking8 Jul 28, 2025
c98d86a
Update metadata in 21 topics
Rageking8 Jul 28, 2025
e8cfc6a
Clean up 2 stray backticks
Rageking8 Jul 30, 2025
2050d22
Update routine-mappings.md
TylerMSFT Aug 9, 2025
8d8c23a
Merge pull request #5539 from Rageking8/adjust-some-semicolon-placements
v-dirichards Aug 11, 2025
0b2dbfb
Merge pull request #5544 from Rageking8/elide-duplicate-rows-in-tables
v-dirichards Aug 11, 2025
fc8c95a
Merge pull request #5555 from Rageking8/wrap-multiple-function-protot…
v-dirichards Aug 11, 2025
74b39dc
Merge pull request #5564 from Rageking8/add-missing-commas-after-for-…
v-dirichards Aug 11, 2025
fddd419
Merge pull request #5577 from Rageking8/resolve-mismatched-lt-gt-oper…
v-dirichards Aug 11, 2025
9398b0e
Merge pull request #5593 from Rageking8/elide-parentheses-around-some…
v-dirichards Aug 11, 2025
f0df71c
Merge pull request #5598 from Rageking8/clean-up-2-stray-backticks
v-dirichards Aug 11, 2025
6ea7f26
Merge pull request #6038 from MicrosoftDocs/FromPublicMasterBranch
Albertyang0 Aug 11, 2025
f719f7b
Merge pull request #6039 from MicrosoftDocs/main
learn-build-service-prod[bot] Aug 11, 2025
ff3bd5e
Merge pull request #5651 from MicrosoftDocs/main638905304860339665syn…
learn-build-service-prod[bot] Aug 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions docs/build/reference/files-created-for-clr-projects.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
---
description: "Learn more about: Files Created for CLR Projects"
title: "Files Created for CLR Projects"
ms.date: "11/04/2016"
description: "Learn more about: Files Created for CLR Projects"
ms.date: 11/04/2016
helpviewer_keywords: ["Visual Studio C++ projects, CLR programming", ".NET applications, C++"]
ms.assetid: 59ae9020-5f26-4ad0-bbdd-97c2e2023a20
---
# Files Created for CLR Projects

When you use Visual C++ templates to create your projects, several files are created, depending on which template you use. The following table lists all the files that are created by project templates for .NET Framework projects.

|File name|File description|
|---------------|----------------------|
|AssemblyInfo.cpp|The file that contains information (that is, attributes, files, resources, types, versioning information, signing information, and so on) for modifying the project's assembly metadata. For more information see [Assembly Concepts](/dotnet/framework/app-domains/assembly-contents).|
|AssemblyInfo.cpp|The file that contains information (that is, attributes, files, resources, types, versioning information, signing information, and so on) for modifying the project's assembly metadata. For more information, see [Assembly Concepts](/dotnet/framework/app-domains/assembly-contents).|
|*projname*.asmx|A text file that references managed classes that encapsulate the functionality of the XML Web service.|
|*projname*.cpp|The main source file and entry point into the application that Visual Studio created for you. Identifies the project .dll file and the project namespace. Provide your own code in this file.|
|*projname*.vsdisco|An XML deployment file containing links to other resources that describe the XML Web service.|
Expand Down
7 changes: 3 additions & 4 deletions docs/build/reference/return-value-of-cl-exe.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
description: "Learn more about: Return Value of cl.exe"
title: "Return Value of cl.exe"
ms.date: "09/05/2018"
description: "Learn more about: Return Value of cl.exe"
ms.date: 09/05/2018
helpviewer_keywords: ["cl.exe compiler, return value"]
ms.assetid: 7c2d7f33-ee0d-4199-8ef4-75fe2b007670
---
# Return Value of cl.exe

Expand All @@ -13,7 +12,7 @@ The return value of cl.exe can be useful if you are compiling from a script, pow

There are too many possible error exit codes for cl.exe to list them all. You can look up an error code in the winerror.h or ntstatus.h files included in the Windows Software Development Kit in the %ProgramFiles(x86)%\Windows Kits\\<em>version</em>\Include\shared\ directory. Error codes returned in decimal must be converted to hexadecimal for search. For example, an error code of -1073741620 converted to hexadecimal is 0xC00000CC. This error is found in ntstatus.h, where the corresponding message is "The specified share name cannot be found on the remote server." For a downloadable list of Windows error codes, see [`[MS-ERREF]` Windows Error Codes](/openspecs/windows_protocols/MS-ERREF).

You can also use the error lookup utility in Visual Studio to find out what a compiler error message means. In a Visual Studio command shell, enter **errlook.exe** to start the utility; or in the Visual Studio IDE, on the menu bar, choose **Tools**, **Error Lookup**. Enter the error value to find the descriptive text associated with the error. For more information see [ERRLOOK Reference](errlook-reference.md).
You can also use the error lookup utility in Visual Studio to find out what a compiler error message means. In a Visual Studio command shell, enter **errlook.exe** to start the utility; or in the Visual Studio IDE, on the menu bar, choose **Tools**, **Error Lookup**. Enter the error value to find the descriptive text associated with the error. For more information, see [ERRLOOK Reference](errlook-reference.md).

## Remarks

Expand Down
7 changes: 3 additions & 4 deletions docs/c-language/c-comments.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
description: "Learn more about: C Comments"
title: "C Comments"
ms.date: "06/25/2018"
description: "Learn more about: C Comments"
ms.date: 06/25/2018
helpviewer_keywords: ["code comments, C code", "comments, documenting code", "comments, C code", "/* */ comment delimiters", "comments"]
ms.assetid: 0f5f2825-e673-49e7-8669-94e2f5294989
---
# C Comments

Expand Down Expand Up @@ -57,7 +56,7 @@ The Microsoft compiler also supports single-line comments preceded by two forwar
// This is a valid comment
```

Comments beginning with two forward slashes (**`//`**) are terminated by the next newline character that isn't preceded by an escape character. In the next example, the newline character is preceded by a backslash (**`\`**), creating an "escape sequence." This escape sequence causes the compiler to treat the next line as part of the previous line. (For more information, see [Escape Sequences](../c-language/escape-sequences.md).)
Comments beginning with two forward slashes (**`//`**) are terminated by the next newline character that isn't preceded by an escape character. In the next example, the newline character is preceded by a backslash (**`\`**), creating an "escape sequence." This escape sequence causes the compiler to treat the next line as part of the previous line. For more information, see [Escape Sequences](../c-language/escape-sequences.md).

```C
// my comment \
Expand Down
7 changes: 3 additions & 4 deletions docs/c-language/initializing-scalar-types.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
description: "Learn more about: Initializing Scalar Types"
title: "Initializing Scalar Types"
ms.date: "11/04/2016"
description: "Learn more about: Initializing Scalar Types"
ms.date: 11/04/2016
helpviewer_keywords: ["initializing scalar types", "register variables", "initialization, scalar types", "initializing variables, scalar types", "scalar types", "static variables, initializing", "automatic storage class, initializing scalar types", "automatic storage class", "types [C], initializing"]
ms.assetid: 73c516f5-c3ad-4d56-ab3b-f2a82b621104
---
# Initializing Scalar Types

Expand Down Expand Up @@ -38,7 +37,7 @@ You can initialize variables of any type, as long as you obey the following rule

- Variables declared with the **`auto`** or **`register`** storage-class specifier are initialized each time execution control passes to the block in which they're declared. If you omit an initializer from the declaration of an **`auto`** or **`register`** variable, the initial value of the variable is undefined. For automatic and register values, the initializer isn't restricted to being a constant; it can be any expression involving previously defined values, even function calls.

- The initial values for external variable declarations and for all **`static`** variables, whether external or internal, must be constant expressions. (For more information, see [Constant Expressions](../c-language/c-constant-expressions.md).) Since the address of any externally declared or static variable is constant, it can be used to initialize an internally declared **`static`** pointer variable. However, the address of an **`auto`** variable can't be used as a static initializer because it may be different for each execution of the block. You can use either constant or variable values to initialize **`auto`** and **`register`** variables.
- The initial values for external variable declarations and for all **`static`** variables, whether external or internal, must be constant expressions. For more information, see [Constant Expressions](../c-language/c-constant-expressions.md). Since the address of any externally declared or static variable is constant, it can be used to initialize an internally declared **`static`** pointer variable. However, the address of an **`auto`** variable can't be used as a static initializer because it may be different for each execution of the block. You can use either constant or variable values to initialize **`auto`** and **`register`** variables.

- If the declaration of an identifier has block scope, and the identifier has external linkage, the declaration can't have an initialization.

Expand Down
7 changes: 3 additions & 4 deletions docs/c-language/l-value-and-r-value-expressions.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
description: "Learn more about: L-Value and R-Value Expressions"
title: "L-Value and R-Value Expressions"
ms.date: "11/04/2016"
description: "Learn more about: L-Value and R-Value Expressions"
ms.date: 11/04/2016
helpviewer_keywords: ["L-values", "member-selection expressions", "R-value expressions", "subscript expressions"]
ms.assetid: b790303e-ec6f-4d0d-bc55-df42da267172
---
# L-Value and R-Value Expressions

Expand Down Expand Up @@ -31,7 +30,7 @@ The term "r-value" is sometimes used to describe the value of an expression and

**Microsoft Specific**

Microsoft C includes an extension to the ANSI C standard that allows casts of l-values to be used as l-values, as long as the size of the object isn't lengthened through the cast. (For more information, see [Type-Cast Conversions](../c-language/type-cast-conversions.md).) The following example illustrates this feature:
Microsoft C includes an extension to the ANSI C standard that allows casts of l-values to be used as l-values, as long as the size of the object isn't lengthened through the cast. For more information, see [Type-Cast Conversions](../c-language/type-cast-conversions.md). The following example illustrates this feature:

```
char *p ;
Expand Down
7 changes: 3 additions & 4 deletions docs/c-language/parameters.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
description: "Learn more about: Parameters"
title: "Parameters"
ms.date: "11/04/2016"
description: "Learn more about: Parameters"
ms.date: 11/04/2016
helpviewer_keywords: ["arguments [C++], function", "function parameters", "parameters [C++]", "function arguments, vs. parameters", "parameters [C++], function", "functions [C], parameters", "function parameters, syntax", "ellipsis (...), parameters", "... ellipsis"]
ms.assetid: 8f2b8026-78b5-4e21-86a3-bf0f91f05689
---
# Parameters

Expand Down Expand Up @@ -50,7 +49,7 @@ void new( double x, double y, double z )
}
```

If at least one parameter occurs in the parameter list, the list can end with a comma followed by three periods (**`, ...`**). This construction, called the "ellipsis notation," indicates a variable number of arguments to the function. (For more information, see [Calls with a Variable Number of Arguments](../c-language/calls-with-a-variable-number-of-arguments.md).) However, a call to the function must have at least as many arguments as there are parameters before the last comma.
If at least one parameter occurs in the parameter list, the list can end with a comma followed by three periods (**`, ...`**). This construction, called the "ellipsis notation," indicates a variable number of arguments to the function. For more information, see [Calls with a Variable Number of Arguments](../c-language/calls-with-a-variable-number-of-arguments.md). However, a call to the function must have at least as many arguments as there are parameters before the last comma.

If no arguments are to be passed to the function, the list of parameters is replaced by the keyword **`void`**. This use of **`void`** is distinct from its use as a type specifier.

Expand Down
7 changes: 3 additions & 4 deletions docs/c-language/scope-and-visibility.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
description: "Learn more about: Scope and Visibility"
title: "Scope and Visibility"
ms.date: "11/04/2016"
description: "Learn more about: Scope and Visibility"
ms.date: 11/04/2016
helpviewer_keywords: ["scope, levels", "visibility", "file scope [C++]"]
ms.assetid: a019eb7c-66ed-46a7-bc9f-89a963930a56
---
# Scope and Visibility

Expand All @@ -15,7 +14,7 @@ All identifiers except labels have their scope determined by the level at which
The declarator or type specifier for an identifier with file scope appears outside any block or list of parameters and is accessible from any place in the translation unit after its declaration. Identifier names with file scope are often called "global" or "external." The scope of a global identifier begins at the point of its definition or declaration and terminates at the end of the translation unit.

**Function scope**\
A label is the only kind of identifier that has function scope. A label is declared implicitly by its use in a statement. Label names must be unique within a function. (For more information about labels and label names, see [The goto and Labeled Statements](../c-language/goto-and-labeled-statements-c.md).)
A label is the only kind of identifier that has function scope. A label is declared implicitly by its use in a statement. Label names must be unique within a function. For more information about labels and label names, see [The goto and Labeled Statements](../c-language/goto-and-labeled-statements-c.md).

**Block scope**\
The declarator or type specifier for an identifier with block scope appears inside a block or within the list of formal parameter declarations in a function definition. It is visible only from the point of its declaration or definition to the end of the block containing its declaration or definition. Its scope is limited to that block and to any blocks nested in that block and ends at the curly brace that closes the associated block. Such identifiers are sometimes called "local variables."
Expand Down
7 changes: 3 additions & 4 deletions docs/c-language/typedef-declarations.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
description: "Learn more about: Typedef Declarations"
title: "Typedef Declarations"
ms.date: "11/04/2016"
description: "Learn more about: Typedef Declarations"
ms.date: 11/04/2016
helpviewer_keywords: ["declarations, typedef", "typedef declarations", "types [C], declarations"]
ms.assetid: e92a3b82-9269-4bc6-834a-6f431ccac83e
---
# Typedef Declarations

Expand Down Expand Up @@ -43,7 +42,7 @@ A typedef declaration is interpreted in the same way as a variable or function d

A typedef declaration doesn't create new types. It creates synonyms for existing types, or names for types that could be specified in other ways. When a typedef name is used as a type specifier, it can be combined with certain type specifiers, but not others. Acceptable modifiers include **`const`** and **`volatile`**.

Typedef names share the name space with ordinary identifiers. (For more information, see [Name Spaces](../c-language/name-spaces.md).) Therefore, a program can have a typedef name and a local-scope identifier by the same name. For example:
Typedef names share the name space with ordinary identifiers. For more information, see [Name Spaces](../c-language/name-spaces.md). Therefore, a program can have a typedef name and a local-scope identifier by the same name. For example:

```C
typedef char FlagType;
Expand Down
5 changes: 2 additions & 3 deletions docs/c-runtime-library/code-pages.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
---
title: "Code Pages"
description: "A description of code page support in the Microsoft C runtime."
ms.date: 11/04/2016
ms.topic: "concept-article"
ms.date: "11/04/2016"
helpviewer_keywords: ["character sets [C++], code pages", "ANSI [C++], code pages", "system-default code page", "multibyte code pages [C++]", "localization [C++], code pages", "code pages [C++], types of", "locale code pages [C++]"]
ms.assetid: 4a26fc42-185a-4add-98bf-a7b314ae6186
---
# Code pages

Expand All @@ -22,7 +21,7 @@ The Microsoft runtime library uses the following types of code pages:

also sets the locale to the system-default ANSI code page.

- Locale code page. The behavior of several run-time routines is dependent on the current locale setting, which includes the locale code page. (For more information, see [Locale](./locale.md).) By default, all locale-dependent routines in the Microsoft run-time library use the code page that corresponds to the "C" locale. At run time, you can change or query the locale code page in use with a call to [`setlocale`](./reference/setlocale-wsetlocale.md).
- Locale code page. The behavior of several run-time routines is dependent on the current locale setting, which includes the locale code page. For more information, see [Locale](./locale.md). By default, all locale-dependent routines in the Microsoft run-time library use the code page that corresponds to the "C" locale. At run time, you can change or query the locale code page in use with a call to [`setlocale`](./reference/setlocale-wsetlocale.md).

- Multibyte code page. The behavior of most of the multibyte-character routines in the run-time library depends on the current multibyte code page setting. By default, these routines use the system-default ANSI code page. At run-time you can query and change the multibyte code page with [`_getmbcp`](./reference/getmbcp.md) and [`_setmbcp`](./reference/setmbcp.md), respectively.

Expand Down
1 change: 0 additions & 1 deletion docs/c-runtime-library/is-isw-routines.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,6 @@ Character has property specified by the `desc` argument. For each valid value of
| `_LOWER` | `iswlower(c)` |
| `_ALPHA | _BLANK | _DIGIT | _PUNCT` | `iswprint(c)` |
| `_PUNCT` | `iswpunct(c)` |
| `_BLANK` | `iswblank(c)` |
| `_SPACE` | `iswspace(c)` |
| `_UPPER` | `iswupper(c)` |
| `_HEX` | `iswxdigit(c)` |
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
---
description: "Learn more about: ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s"
title: "ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s"
ms.date: "4/2/2020"
description: "Learn more about: ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s"
ms.date: 4/2/2020
api_name: ["_ctime64_s", "_wctime32_s", "ctime_s", "_wctime64_s", "_ctime32_s", "_wctime_s", "_o__ctime32_s", "_o__ctime64_s", "_o__wctime32_s", "_o__wctime64_s"]
api_location: ["msvcrt.dll", "msvcr80.dll", "msvcr90.dll", "msvcr100.dll", "msvcr100_clr0400.dll", "msvcr110.dll", "msvcr110_clr0400.dll", "msvcr120.dll", "msvcr120_clr0400.dll", "ucrtbase.dll", "api-ms-win-crt-time-l1-1-0.dll"]
api_type: ["DLLExport"]
topic_type: ["apiref"]
f1_keywords: ["ctime64_s", "_ctime32_s", "_tctime32_s", "_ctime64_s", "_wctime_s", "_tctime_s", "_tctime64_s", "ctime_s", "ctime32_s"]
helpviewer_keywords: ["_wctime32_s function", "ctime64_s function", "_tctime64_s function", "_wctime_s function", "tctime_s function", "_wctime64_s function", "ctime_s function", "ctime32_s function", "_ctime64_s function", "tctime64_s function", "wctime64_s function", "wctime_s function", "_tctime_s function", "tctime32_s function", "wctime32_s function", "time, converting", "_ctime32_s function", "_tctime32_s function"]
ms.assetid: 36ac419a-8000-4389-9fd8-d78b747a009b
---
# `ctime_s`, `_ctime32_s`, `_ctime64_s`, `_wctime_s`, `_wctime32_s`, `_wctime64_s`

Expand All @@ -30,8 +29,8 @@ errno_t _ctime32_s(
errno_t _ctime64_s(
char* buffer,
size_t numberOfElements,
const __time64_t *sourceTime )
;
const __time64_t *sourceTime
);
errno_t _wctime_s(
wchar_t* buffer,
size_t numberOfElements,
Expand Down
Loading