如何在复杂的宏中找出数组下标运算符的关联性和运算

时间:2019-07-16 10:24:01

标签: macros operator-precedence c89

我正在编写一个令人困惑的宏来打印字符串字符。我知道具有运算符优先级和关联性的宏的陷阱,但无法找出正确的结果。

我搜索并知道数组下标运算符等效于将下标添加到数组名称(数组中第一个元素的地址),然后取消对结果地址的引用。

library(dplyr)

tt %>%
  group_by(ID) %>%
  summarise(Outcome = if (any(Registered == "Yes")) 
      c("No", "Yes")[(which.max(Registered == "Yes") < 
                     which.max(Type == "Review"))+1] else "No")

#  ID    Outcome
#  <chr> <chr>  
#1 P40   Yes    
#2 P42   No     
#3 P43   Yes    
#4 P44   No     

我用了纸和铅笔,然后进行了宏扩展并缩小了结果的表达。我的输出为“ C”,但在IDE(MS Visual Studio和CodeBlocks)上的打印输出为“ D”,就像我在s [3]上调用了宏一样。

0 个答案:

没有答案