Skip to content

Commit 60510d3

Browse files
authored
Merge pull request MicrosoftDocs#4998 from MicrosoftDocs/main
7/27/2023 10:30 AM Publish
2 parents e7cfc9a + 1d9fdd6 commit 60510d3

File tree

3 files changed

+18
-13
lines changed

3 files changed

+18
-13
lines changed

docs/build/configuring-programs-for-arm-processors-visual-cpp.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
description: "Learn more about: Configure C++ projects for ARM processors"
33
title: "Configure C++ projects for ARM processors"
44
ms.date: "07/11/2018"
5-
ms.assetid: 3d95f221-656a-480d-9651-9ad263895747
65
---
76
# Configure C++ projects for ARM processors
87

@@ -17,7 +16,7 @@ Describes the application binary interface used by Windows on ARM for register u
1716
Describes the application binary interface used by Windows on ARM64 for register usage, calling conventions and exception handling.
1817

1918
[Common MSVC ARM migration issues](common-visual-cpp-arm-migration-issues.md)\
20-
Describes C++ code elements that are commonly assumed to be portable across architectures, but which produce different results for ARM than for x86 and x64.
19+
Describes C++ code elements that are commonly assumed to be portable across architectures, but that produce different results for ARM than for x86 and x64.
2120

2221
[ARM exception handling](arm-exception-handling.md)\
2322
Describes the encoding scheme for stack unwinding during structured exception handling in Windows on ARM.
@@ -27,6 +26,12 @@ Describes the encoding scheme for stack unwinding during structured exception ha
2726

2827
## Related Sections
2928

29+
[Get started with Arm64EC](/windows/arm/arm64ec-build)\
30+
Describes how to get started building your app or project using [Arm64EC](/windows/arm/arm64ec).
31+
32+
[How to: Configure projects to target platforms](/visualstudio/ide/how-to-configure-projects-to-target-platforms)\
33+
Describes how to set up your build to target different processor architectures, including Arm64.
34+
3035
[ARM intrinsics](../intrinsics/arm-intrinsics.md)\
3136
Describes compiler intrinsics for processors that use the ARM architecture.
3237

docs/c-language/array-declarations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ An "array declaration" names the array and specifies the type of its elements. I
2525
*`declarator`*:\
2626
&emsp;*`pointer`*<sub>opt</sub> *`direct-declarator`*
2727

28-
*`direct-declarator`*: /\* A function declarator \*/\
28+
*`direct-declarator`*:\
2929
&emsp;*`direct-declarator`* **`[`** *`constant-expression`*<sub>opt</sub> **`]`**
3030

3131
Because *`constant-expression`* is optional, the syntax has two forms:

docs/c-language/interpreting-more-complex-declarators.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,31 +47,31 @@ In this example, the steps are numbered in order and can be interpreted as follo
4747
4848
The following examples illustrate other complex declarations and show how parentheses can affect the meaning of a declaration.
4949
50-
```
50+
```C
5151
int *var[5]; /* Array of pointers to int values */
5252
```
5353

5454
The array modifier has higher priority than the pointer modifier, so `var` is declared to be an array. The pointer modifier applies to the type of the array elements; therefore, the array elements are pointers to **`int`** values.
5555

56-
```
56+
```C
5757
int (*var)[5]; /* Pointer to array of int values */
5858
```
5959

6060
In this declaration for `var`, parentheses give the pointer modifier higher priority than the array modifier, and `var` is declared to be a pointer to an array of five **`int`** values.
6161

62-
```
62+
```C
6363
long *var( long, long ); /* Function returning pointer to long */
6464
```
6565
6666
Function modifiers also have higher priority than pointer modifiers, so this declaration for `var` declares `var` to be a function returning a pointer to a **`long`** value. The function is declared to take two **`long`** values as arguments.
6767
68-
```
68+
```C
6969
long (*var)( long, long ); /* Pointer to function returning long */
7070
```
7171

7272
This example is similar to the previous one. Parentheses give the pointer modifier higher priority than the function modifier, and `var` is declared to be a pointer to a function that returns a **`long`** value. Again, the function takes two **`long`** arguments.
7373

74-
```
74+
```C
7575
struct both /* Array of pointers to functions */
7676
{ /* returning structures */
7777
int a;
@@ -81,28 +81,28 @@ struct both /* Array of pointers to functions */
8181

8282
The elements of an array cannot be functions, but this declaration demonstrates how to declare an array of pointers to functions instead. In this example, `var` is declared to be an array of five pointers to functions that return structures with two members. The arguments to the functions are declared to be two structures with the same structure type, `both`. Note that the parentheses surrounding `*var[5]` are required. Without them, the declaration is an illegal attempt to declare an array of functions, as shown below:
8383

84-
```
84+
```C
8585
/* ILLEGAL */
8686
struct both *var[5](struct both, struct both);
8787
```
8888

8989
The following statement declares an array of pointers.
9090

91-
```
91+
```C
9292
unsigned int *(* const *name[5][10] ) ( void );
9393
```
9494

9595
The `name` array has 50 elements organized in a multidimensional array. The elements are pointers to a pointer that is a constant. This constant pointer points to a function that has no parameters and returns a pointer to an unsigned type.
9696

9797
This next example is a function returning a pointer to an array of three **`double`** values.
9898

99-
```
99+
```C
100100
double ( *var( double (*)[3] ) )[3];
101101
```
102102
103103
In this declaration, a function returns a pointer to an array, since functions returning arrays are illegal. Here `var` is declared to be a function returning a pointer to an array of three **`double`** values. The function `var` takes one argument. The argument, like the return value, is a pointer to an array of three **`double`** values. The argument type is given by a complex *abstract-declarator*. The parentheses around the asterisk in the argument type are required; without them, the argument type would be an array of three pointers to **`double`** values. For a discussion and examples of abstract declarators, see [Abstract Declarators](../c-language/c-abstract-declarators.md).
104104
105-
```
105+
```C
106106
union sign /* Array of arrays of pointers */
107107
{ /* to pointers to unions */
108108
int x;
@@ -112,7 +112,7 @@ union sign /* Array of arrays of pointers */
112112

113113
As the above example shows, a pointer can point to another pointer, and an array can contain arrays as elements. Here `var` is an array of five elements. Each element is a five-element array of pointers to pointers to unions with two members.
114114

115-
```
115+
```C
116116
union sign *(*var[5])[5]; /* Array of pointers to arrays
117117
of pointers to unions */
118118
```

0 commit comments

Comments
 (0)