Skip to content

Commit 4ed2d68

Browse files
authored
Merge pull request #3124 from MicrosoftDocs/master
9/8/2020 AM Publish
2 parents 093f49b + 224f2cd commit 4ed2d68

File tree

93 files changed

+1159
-367
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+1159
-367
lines changed

docs/c-runtime-library/crt-library-features.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
22
title: "CRT Library Features"
3+
description: "This various .lib files that comprise the Microsoft C run-time libraries as well as their associated compiler options and preprocessor directives."
34
ms.date: "08/20/2018"
45
helpviewer_keywords: ["MSVCR71.dll", "libraries [C++], multithreaded", "library files, run-time", "LIBCMT.lib", "LIBCP.lib", "LIBCPMT.lib", "run-time libraries, C", "CRT, release versions", "MSVCP71.dll", "LIBC.lib", "libraries [C++]", "libraries [C++], run-time", "linking [C++], libraries"]
56
ms.assetid: a889fd39-807d-48f2-807f-81492612463f
@@ -65,7 +66,7 @@ For more information on using the CRT with **/clr**, see [Mixed (Native and Mana
6566

6667
To build a debug version of your application, the [_DEBUG](../c-runtime-library/debug.md) flag must be defined and the application must be linked with a debug version of one of these libraries. For more information about using the debug versions of the library files, see [CRT Debugging Techniques](/visualstudio/debugger/crt-debugging-techniques).
6768

68-
This version of the CRT is not fully conformant with the C99 standard. In particular, the \<tgmath.h> header and the CX_LIMITED_RANGE/FP_CONTRACT pragma macros are not supported. Certain elements such as the meaning of parameter specifiers in standard IO functions use legacy interpretations by default. You can use /Zc compiler conformance options and specify linker options to control some aspects of library conformance,
69+
This version of the CRT is not fully conformant with the C99 standard. In particular, the \<tgmath.h> header and the CX_LIMITED_RANGE/FP_CONTRACT pragma macros are not supported. Certain elements such as the meaning of parameter specifiers in standard IO functions use legacy interpretations by default. You can use /Zc compiler conformance options and specify linker options to control some aspects of library conformance.
6970

7071
## C++ Standard Library
7172

docs/c-runtime-library/global-state.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
22
title: "Global state in the CRT"
3+
description: "Describes how shared global state is handled in the Universal C Runtime."
34
ms.date: "04/02/2020"
45
helpviewer_keywords: ["CRT global state"]
56
---

docs/c-runtime-library/inp-inpw-inpd.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ I/O port number.
3939

4040
## Return Value
4141

42-
The functions return the byte, word, or double word read from `port`. There is no error return.
42+
The functions return the byte, word, or double word read from `port`. There's no error return.
4343

4444
## Remarks
4545

docs/c-runtime-library/reference/abs-labs-llabs-abs64.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
22
title: "abs, labs, llabs, _abs64"
3+
description: "API reference for abs, labs, llabs, and _abs64; which calculates the absolute value of a value."
34
ms.date: "04/05/2018"
45
api_name: ["abs", "_abs64", "labs", "llabs"]
56
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-utility-l1-1-0.dll"]
@@ -32,18 +33,18 @@ float abs( float n ); // C++ only
3233

3334
### Parameters
3435

35-
*n*<br/>
36+
*n*\
3637
Numeric value.
3738

3839
## Return Value
3940

40-
The **abs**, **labs**, **llabs** and **_abs64** functions return the absolute value of the parameter *n*. There is no error return.
41+
The **abs**, **labs**, **llabs**, and **_abs64** functions return the absolute value of the parameter *n*. There's no error return.
4142

4243
## Remarks
4344

4445
Because C++ allows overloading, you can call overloads of **abs** that take and return **`long`**, **`long long`**, **`float`**, **`double`**, and **`long double`** values. These overloads are defined in the \<cmath> header. In a C program, **abs** always takes and returns an **`int`**.
4546

46-
**Microsoft-specific**: Because the range of negative integers that can be represented by using any integral type is larger than the range of positive integers that can be represented by using that type, it's possible to supply an argument to these functions that cant be converted. If the absolute value of the argument cannot be represented by the return type, the **abs** functions return the argument value unchanged. Specifically, `abs(INT_MIN)` returns `INT_MIN`, `labs(LONG_MIN)` returns `LONG_MIN`, `llabs(LLONG_MIN)` returns `LLONG_MIN`, and `_abs64(_I64_MIN)` returns `_I64_MIN`. This means that the **abs** functions cannot be used to guarantee a positive value.
47+
**Microsoft-specific**: Because the range of negative integers that can be represented by using any integral type is larger than the range of positive integers that can be represented by using that type, it's possible to supply an argument to these functions that can't be converted. If the absolute value of the argument cannot be represented by the return type, the **abs** functions return the argument value unchanged. Specifically, `abs(INT_MIN)` returns `INT_MIN`, `labs(LONG_MIN)` returns `LONG_MIN`, `llabs(LLONG_MIN)` returns `LLONG_MIN`, and `_abs64(_I64_MIN)` returns `_I64_MIN`. This means that the **abs** functions cannot be used to guarantee a positive value.
4748

4849
## Requirements
4950

docs/c-runtime-library/reference/acos-acosf-acosl.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: "acos, acosf, acosl"
3-
ms.date: "4/2/2020"
3+
description: "API reference for `acos`, `acosf`, and `acosl`; which calculate the arccosine of a floating-point value."
4+
ms.date: "08/31/2020"
45
api_name: ["acosf", "acos", "acosl", "_o_acos"]
56
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-math-l1-1-0.dll", "api-ms-win-crt-private-l1-1-0.dll"]
67
api_type: ["DLLExport"]
@@ -19,16 +20,15 @@ Calculates the arccosine.
1920
double acos( double x );
2021
float acosf( float x );
2122
long double acosl( long double x );
22-
```
23+
#define acos(X) // Requires C11 or higher
2324

24-
```cpp
2525
float acos( float x ); // C++ only
2626
long double acos( long double x ); // C++ only
2727
```
2828
2929
### Parameters
3030
31-
*x*<br/>
31+
*x*\
3232
Value between -1 and 1, for which to calculate the arccosine (the inverse cosine).
3333
3434
## Return Value
@@ -45,7 +45,9 @@ By default, if *x* is less than -1 or greater than 1, **acos** returns an indefi
4545
4646
## Remarks
4747
48-
Because C++ allows overloading, you can call overloads of **acos** that take and return **`float`** and **`long double`** types. In a C program, **acos** always takes and returns a **`double`**.
48+
Because C++ allows overloading, you can call overloads of **acos** that take and return **`float`** and **`long double`** types. In a C program, unless you're using the \<tgmath.h> macro to call this function, **acos** always takes and returns a **`double`**.
49+
50+
If you use the \<tgmath.h> `acos()` macro, the type of the argument determines which version of the function is selected. See [Type-generic math](../../c-runtime-library/tgmath.md) for details.
4951
5052
By default, this function's global state is scoped to the application. To change this, see [Global state in the CRT](../global-state.md).
5153
@@ -54,6 +56,7 @@ By default, this function's global state is scoped to the application. To change
5456
|Routine|Required header|Optional headers|
5557
|-------------|---------------------|----------------------|
5658
|**acos**, **acosf**, **acosl**|\<math.h>|\<errno.h>|
59+
|**acos()** macro | \<tgmath.h> ||
5760
5861
## Example
5962

docs/c-runtime-library/reference/acosh-acoshf-acoshl.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: "acosh, acoshf, acoshl"
3-
ms.date: "4/2/2020"
3+
description: "API reference for acosh, acoshf, and acoshl; which calculate the inverse hyperbolic cosine of a floating-point value."
4+
ms.date: "08/31/2020"
45
api_name: ["acoshf", "acosh", "acoshl", "_o_acosh", "_o_acoshf", "_o_acoshl"]
56
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-math-l1-1-0.dll", "api-ms-win-crt-private-l1-1-0.dll"]
67
api_type: ["DLLExport"]
@@ -19,16 +20,15 @@ Calculates the inverse hyperbolic cosine.
1920
double acosh( double x );
2021
float acoshf( float x );
2122
long double acoshl( long double x );
22-
```
23+
#define acosh(X) // Requires C11 or higher
2324

24-
```cpp
2525
float acosh( float x ); // C++ only
2626
long double acosh( long double x ); // C++ only
2727
```
2828
2929
### Parameters
3030
31-
*x*<br/>
31+
*x*\
3232
Floating-point value.
3333
3434
## Return Value
@@ -42,7 +42,9 @@ The **acosh** functions return the inverse hyberbolic cosine (arc hyperbolic cos
4242
4343
## Remarks
4444
45-
When you use C++, you can call overloads of **acosh** that take and return **`float`** or **`long double`** values. In a C program, **acosh** always takes and returns **`double`**.
45+
When you use C++, you can call overloads of **acosh** that take and return **`float`** or **`long double`** values. In a C program, unless you're using the \<tgmath.h> macro to call this function, **acosh** always takes and returns **`double`**.
46+
47+
If you use the \<tgmath.h> `acosh()` macro, the type of the argument determines which version of the function is selected. See [Type-generic math](../../c-runtime-library/tgmath.md) for details.
4648
4749
By default, this function's global state is scoped to the application. To change this, see [Global state in the CRT](../global-state.md).
4850
@@ -51,6 +53,7 @@ By default, this function's global state is scoped to the application. To change
5153
|Function|C header|C++ header|
5254
|--------------|--------------|------------------|
5355
|**acosh**, **acoshf**, **acoshl**|\<math.h>|\<cmath>|
56+
|**acosh()** macro | \<tgmath.h> ||
5457
5558
For additional compatibility information, see [Compatibility](../../c-runtime-library/compatibility.md).
5659

docs/c-runtime-library/reference/asin-asinf-asinl.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: "asin, asinf, asinl"
3-
ms.date: "4/2/2020"
3+
description: "API reference for asin, asinf, and asinl; which calculate the arcsine of a floating-point value."
4+
ms.date: "08/31/2020"
45
api_name: ["asinf", "asinl", "asin", "_o_asin"]
56
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-math-l1-1-0.dll", "api-ms-win-crt-private-l1-1-0.dll"]
67
api_type: ["DLLExport"]
@@ -19,16 +20,15 @@ Calculates the arcsine.
1920
double asin( double x );
2021
float asinf ( float x );
2122
long double asinl( long double x );
22-
```
23+
#define asin(X) // Requires C11 or higher
2324

24-
```cpp
2525
float asin( float x ); // C++ only
2626
long double asin( long double x ); // C++ only
2727
```
2828
2929
### Parameters
3030
31-
*x*<br/>
31+
*x*\
3232
Value whose arcsine is to be calculated.
3333
3434
## Return Value
@@ -45,7 +45,9 @@ By default, if *x* is less than -1 or greater than 1, **asin** returns an indefi
4545
4646
## Remarks
4747
48-
Because C++ allows overloading, you can call overloads of **asin** with **`float`** and **`long double`** values. In a C program, **asin** always takes and returns a **`double`**.
48+
Because C++ allows overloading, you can call overloads of **asin** with **`float`** and **`long double`** values. In a C program, unless you're using the \<tgmath.h> macro to call this function, **asin** always takes and returns a **`double`**.
49+
50+
If you use the \<tgmath.h> `asin()` macro, the type of the argument determines which version of the function is selected. See [Type-generic math](../../c-runtime-library/tgmath.md) for details.
4951
5052
By default, this function's global state is scoped to the application. To change this, see [Global state in the CRT](../global-state.md).
5153
@@ -54,6 +56,7 @@ By default, this function's global state is scoped to the application. To change
5456
|Routine|Required header (C)|Required header (C++)|
5557
|-------------|---------------------|-|
5658
|**asin**, **asinf**, **asinl**|\<math.h>|\<cmath> or \<math.h>|
59+
|**asin()** macro | \<tgmath.h> ||
5760
5861
## Example
5962

docs/c-runtime-library/reference/asinh-asinhf-asinhl.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: "asinh, asinhf, asinhl"
3-
ms.date: "4/2/2020"
3+
description: "API reference for asinh, asinhf, and asinhl; which calculate the inverse hyperbolic sine of a floating-point value."
4+
ms.date: "08/31/2020"
45
api_name: ["asinh", "asinhf", "asinhl", "_o_asinh", "_o_asinhf", "_o_asinhl"]
56
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-math-l1-1-0.dll", "api-ms-win-crt-private-l1-1-0.dll"]
67
api_type: ["DLLExport"]
@@ -19,9 +20,8 @@ Calculates the inverse hyperbolic sine.
1920
double asinh( double x );
2021
float asinhf( float x );
2122
long double asinhl( long double x );
22-
```
23+
#define asinh(X) // Requires C11 or higher
2324

24-
```cpp
2525
float asinh( float x ); // C++ only
2626
long double asinh( long double x ); // C++ only
2727
```
@@ -41,15 +41,19 @@ The **asinh** functions return the inverse hyberbolic sine (arc hyperbolic sine)
4141
4242
## Remarks
4343
44-
When you use C++, you can call overloads of **asinh** that take and return **`float`** or **`long double`** values. In a C program, **asinh** always takes and returns **`double`**.
44+
When you use C++, you can call overloads of **asinh** that take and return **`float`** or **`long double`** values. In a C program, unless you're using the \<tgmath.h> macro to call this function, **asinh** always takes and returns **`double`**.
45+
46+
If you use the \<tgmath.h> `asinh()` macro, the type of the argument determines which version of the function is selected. See [Type-generic math](../../c-runtime-library/tgmath.md) for details.
47+
4548
4649
By default, this function's global state is scoped to the application. To change this, see [Global state in the CRT](../global-state.md).
4750
4851
## Requirements
4952
5053
|Function|Required C header|Required C++ header|
5154
|--------------|--------------|------------------|
52-
|**asinh**, **asinhf**, **asinhl**|\<math.h>|\<cmath> or \<math.h<|
55+
|**asinh**, **asinhf**, **asinhl**|\<math.h>|\<cmath> or \<math.h>|
56+
|**asinh()** macro | \<tgmath.h> ||
5357
5458
For additional compatibility information, see [Compatibility](../../c-runtime-library/compatibility.md).
5559

docs/c-runtime-library/reference/atan-atanf-atanl-atan2-atan2f-atan2l.md

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: "atan, atanf, atanl, atan2, atan2f, atan2l"
3-
ms.date: "6/5/2020"
3+
description: "API reference for atan, atanf, atanl, atan2, atan2f, and atan2l; which calculate the arctangent of a floating-point value."
4+
ms.date: "08/31/2020"
45
api_name: ["atan2f", "atan2l", "atan2", "atanf", "atan", "atanl", "_o_atan", "_o_atan2", "_o_atan2f"]
56
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-math-l1-1-0.dll", "api-ms-win-crt-private-l1-1-0.dll"]
67
api_type: ["DLLExport"]
@@ -19,23 +20,23 @@ Calculates the arctangent of **x** (**atan**, **atanf**, and **atanl**) or the a
1920
double atan( double x );
2021
float atanf( float x );
2122
long double atanl( long double x );
23+
#define atan(X) // Requires C11 or higher
24+
25+
float atan( float x ); // C++ only
26+
long double atan( long double x ); // C++ only
2227

2328
double atan2( double y, double x );
2429
float atan2f( float y, float x );
2530
long double atan2l( long double y, long double x );
26-
```
27-
28-
```cpp
29-
float atan( float x ); // C++ only
30-
long double atan( long double x ); // C++ only
31+
#define atan2(Y, X) // Requires C11 or higher
3132

3233
float atan2( float y, float x ); // C++ only
3334
long double atan2( long double y, long double x ); // C++ only
3435
```
3536
3637
### Parameters
3738
38-
*x*, *y*<br/>
39+
*x*, *y*\
3940
Any numbers.
4041
4142
## Return Value
@@ -52,9 +53,11 @@ Any numbers.
5253
5354
The **atan** function calculates the arctangent (the inverse tangent function) of *x*. **atan2** calculates the arctangent of *y*/*x* (if *x* equals 0, **atan2** returns π/2 if *y* is positive, -π/2 if *y* is negative, or 0 if *y* is 0.)
5455
56+
If you use the \<tgmath.h> `atan()` or `atan2()` macro, the type of the argument determines which version of the function is selected. See [Type-generic math](../../c-runtime-library/tgmath.md) for details.
57+
5558
**atan** has an implementation that uses Streaming SIMD Extensions 2 (SSE2). For information and restrictions about using the SSE2 implementation, see [_set_SSE2_enable](set-sse2-enable.md).
5659
57-
Because C++ allows overloading, you can call overloads of **atan** and **atan2** that take **`float`** or **`long double`** arguments. In a C program, **atan** and **atan2** always take **`double`** arguments and return a **`double`**.
60+
Because C++ allows overloading, you can call overloads of **atan** and **atan2** that take **`float`** or **`long double`** arguments. In a C program, unless you're using the \<tgmath.h> macro to call this function, **atan** and **atan2** always take **`double`** arguments and return a **`double`**.
5861
5962
By default, this function's global state is scoped to the application. To change this, see [Global state in the CRT](../global-state.md).
6063
@@ -63,6 +66,7 @@ By default, this function's global state is scoped to the application. To change
6366
|Routine|Required header (C)|Required header (C++)|
6467
|-------------|---------------------|-|
6568
|**atan**, **atan2**, **atanf**, **atan2f**, **atanl**, **atan2l**|\<math.h>|\<cmath> or \<math.h>|
69+
|**atan()**, **atan2** macros | \<tgmath.h> ||
6670
6771
## Example
6872

docs/c-runtime-library/reference/atanh-atanhf-atanhl.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: "atanh, atanhf, atanhl"
3-
ms.date: "4/2/2020"
3+
description: "API reference for atanh, atanhf, and atanhl; which calculate the inverse hyperbolic tangent of a floating-point value."
4+
ms.date: "08/31/2020"
45
api_name: ["atanhl", "atanhf", "atanh", "_o_atanh", "_o_atanhf", "_o_atanhl"]
56
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-math-l1-1-0.dll", "api-ms-win-crt-private-l1-1-0.dll"]
67
api_type: ["DLLExport"]
@@ -19,16 +20,15 @@ Calculates the inverse hyperbolic tangent.
1920
double atanh( double x );
2021
float atanhf( float x );
2122
long double atanhl( long double x );
22-
```
23+
#define atanh(X) // Requires C11 or higher
2324

24-
```cpp
2525
float atanh( float x ); // C++ only
2626
long double atanh( long double x ); // C++ only
2727
```
2828
2929
### Parameters
3030
31-
*x*<br/>
31+
*x*\
3232
Floating-point value.
3333
3434
## Return Value
@@ -42,7 +42,9 @@ The **atanh** functions return the inverse hyberbolic tangent (arc hyperbolic ta
4242
4343
## Remarks
4444
45-
Because C++ allows overloading, you can call overloads of **atanh** that take and return **`float`** or **`long double`** values. In a C program, **atanh** always takes and returns **`double`**.
45+
Because C++ allows overloading, you can call overloads of **atanh** that take and return **`float`** or **`long double`** values. In a C program, unless you're using the \<tgmath.h> macro to call this function, **atanh** always takes and returns **`double`**.
46+
47+
If you use the \<tgmath.h> `atanh()` macro, the type of the argument determines which version of the function is selected. See [Type-generic math](../../c-runtime-library/tgmath.md) for details.
4648
4749
By default, this function's global state is scoped to the application. To change this, see [Global state in the CRT](../global-state.md).
4850
@@ -51,6 +53,7 @@ By default, this function's global state is scoped to the application. To change
5153
|Function|C header|C++ header|
5254
|--------------|--------------|------------------|
5355
|**atanh**, **atanhf**, **atanhl**|\<math.h>|\<cmath> or \<math.h>|
56+
|**atanh()** macro | \<tgmath.h> ||
5457
5558
For additional compatibility information, see [Compatibility](../../c-runtime-library/compatibility.md).
5659

0 commit comments

Comments
 (0)