我想在component.h.gen
中加入component.h
。
我已经看到我可以将__FILE__
与#include
一起使用,如果没有标头保护,则会导致递归包含。
有没有办法追加C字符串文字并包含结果?这是我到目前为止所尝试的:
#define CAT_IMPL(s1, s2) s1##s2
#define CAT(s1, s2) CAT_IMPL(s1, s2)
#define DO_IT CAT(__FILE__, ".gen")
#include DO_IT
但这导致文件包含自身的相同递归 - ".gen"
部分未被使用 - 我在MSVC中收到此警告:
警告C4067:预处理器指令后面的意外令牌 - 预期换行符
是否有适用于gcc / clang / msvc的解决方案?
请注意,我计划在数百甚至数千个文件中使用它,我想通过复制粘贴相同的代码来简化我的生活 - 这就是为什么我要尝试让它发挥作用。
答案 0 :(得分:3)
不幸的是,这是不可能的:
$From = "c:\test folder\content"
$To = "c:\test folder\archive\new"
$Content = Get-Content -path "c:\Test Folder\Content\content.txt" | Out-String
$Archive = Get-ChildItem -path "c:\Test Folder\Archive\" -name | Out-String
If($Archive -notin $Content){
#gets child items and copies them to a new folder
Get-ChildItem $From -recurse | Copy-Item -destination $To
#gets content of file
$Text = Get-Content -path 'c:\test folder\archive\new\content.txt'
#renames the item
Rename-item -Path 'c:\test folder\archive\new' -NewName $Text
}
扩展为字符串;你不能解串一个字符串。所以只需添加" rest"字符串,然后字符串化结果,是不可用的。答案 1 :(得分:1)