我想在C中有两个结构,例如:
A:
typedef struct a
{
char *text;
int something;
}A;
和B:
typedef struct b
{
char *text;
float something_else;
}B;
现在,据我所知,不可能有一个函数使用void *
参数从两个结构中获取text
元素。我错了,这在标准C中是否可行?
答案 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();
的强制转换不是必需的(已撤消强制转换)。