将类型转换为va_arg返回

时间:2017-12-07 15:04:32

标签: c casting variadic-functions

我可以将类型转换为va_arg返回示例吗? 据我所知va_arg无法读取 - 返回char / short int类型

$UpdateFolder = 'C:\Updates'
$FailedUpdates = Get-Content -Path C:/Updates/KBLIST.txt | Where-Object {$_ -like '*NOT*'}

foreach ( $Update in $FailedUpdates )
{
    Write-Host -Object "Update $Update failed"
    $UpdatePath = Get-Item -Path "$UpdateFolder\*$Update*.msu" | Select-Object -ExpandProperty FullName
    Write-Host -Object "`tReinstalling from path: $UpdatePath"
    wusa $UpdatePath /quiet /norestart | Out-Null
}

2 个答案:

答案 0 :(得分:1)

标准指定

  

va_arg宏扩展为具有指定类型和调用中下一个参数值的表达式。

C2011 7.16.1.1/2

这种表达是由宏的扩展引起的,这与如何使用它无关。特别是,当指定给va_arg的类型为int时,如果int的行为是已定义(大致意味着va_arg()与实际参数的提升类型兼容)。

是的,您可以投射int的结果。

答案 1 :(得分:0)

来自文档:

  

<Expander Header="Expand/Collapse..." Grid.Row="4"> <ListView ItemsSource="{Binding Moshav1}" Grid.Row="4"> <ListView.ItemTemplate> <DataTemplate> <StackPanel> <TextBlock Text="{Binding e}" /> <TextBlock Text="{Binding f}" /> <TextBlock Text="{Binding g}" /> </StackPanel> </DataTemplate> </ListView.ItemTemplate> </ListView> </Expander> 返回当前参数

因此,在您的情况下,它会返回va_arg指向pt的值。所以是的,你可以施展这个价值。