使用C中的相同函数从不同结构获取相同的字段

时间:2016-03-20 16:20:41

标签: c types ansi

我想在C中有两个结构,例如:

A:

typedef struct a
{
     char *text;
     int something;
}A;

和B:

typedef struct b
{
     char *text;
     float something_else;
}B;

现在,据我所知,不可能有一个函数使用void *参数从两个结构中获取text元素。我错了,这在标准C中是否可行?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用强制转换以及void f(void *t) { printf("%s\n", *((char **)t)); } int main() { struct a AA = {"hello",3}; struct b BB = {"world",4.0}; f(&AA); f(&BB); return 0; } 元素是两个结构的第一个元素这一事实:

text

注意:传递结构的地址意味着它指向(void *)的地址。然后必须再次取消引用该文本本身的地址,然后传递给printf。

编辑:对f的调用中 [Account under Product heading][1] driver.get("http://www.axisbank.com/"); Thread.sleep(2000); Actions action=new Actions(driver); WebElement account=driver.findElement(By.xpath("//*[@id='product-menu']/div[2]/div/div/ul[1]/li[1]/a")); WebElement prod=driver.findElement(By.xpath("html/body/form/div[5]/div[1]/div[3]/div/div[1]/div[2]/div/div/ul[1]/li[1]/a")); action.moveToElement(prod).build().perform(); Thread.sleep(2000); action.moveToElement(account).click().perform(); 的强制转换不是必需的(已撤消强制转换)。