最近我遇到了一个gcc扩展,我发现它非常有用: __attribute__(cleanup)
基本上,这允许您在退出范围时为局部变量分配清理调用.例如,给定以下代码部分,必须在调用期间的任何和所有情况下显式维护和处理所有内存foo.
void foo() {
char * buff = ...; /* some memory allocation */
char * buff2 = 0, * buff3 = 0;
if (! buff) {
return;
} else {
buff2 = ...; /* memory allocation */
if (! buff2) {
goto clean_exit;
} else {
/* ... and so on ... */
}
}
clean_exit:
free (buff);
free (buff2);
free (buff3);
}
Run Code Online (Sandbox Code Playgroud)
但是,通过使用可以减少到的扩展名
#define clean_pchar_scope __attribute__((cleanup(pchar_free)))
void pchar_free (char ** c) { free (*c); …Run Code Online (Sandbox Code Playgroud) 我发现了很多关于CLS合规性的网页.
我了解CLS合规性:
许多人写道:"如果你编写代码,你应该把它写成符合CLS的." 但据我所知,没有理由在通用软件中使用CLS.
我是对的,还是我错过了什么?
我正在使用ASP.NET/C#程序中的Microsoft Word文档.
我的程序在内部打开word文档.运用
app = new Word.Application();
app.Documents.OpenRun Code Online (Sandbox Code Playgroud)
它创建了一个winword.exe进程的实例,我可以在任务管理器中看到它.
即使我使用close()和关闭Doc app.quit().它应该杀死这个过程.但这个过程并没有被杀死.
任何想法如何以编程方式杀死这个过程.
有没有办法检测JavaScript当前是否存在关键字?
我知道"keydown"事件,但这不是我需要的.按键后一段时间,我希望能够检测到它是否仍然按下.
PS最大的问题似乎是,在一段时间后,密钥开始重复,启动keydown和keyup事件,如恶魔.希望只有一个简单的isKeyDown(key)函数,但如果没有,则需要克服/解决这个问题.
我正在尝试解析以下URI:http://translate.google.com/#zh-CN | en |你
但收到此错误消息:
java.net.URISyntaxException: Illegal character in fragment at index 34: http://translate.google.com/#zh-CN|en|?
at java.net.URI$Parser.fail(URI.java:2809)
at java.net.URI$Parser.checkChars(URI.java:2982)
at java.net.URI$Parser.parse(URI.java:3028)
Run Code Online (Sandbox Code Playgroud)
它有问题"|" 如果我摆脱"|",最后一个中文字符没有引起任何问题,处理这个问题的正确方法是什么?
我的方法看起来像这样:
public static void displayFileOrUrlInBrowser(String File_Or_Url)
{
try { Desktop.getDesktop().browse(new URI(File_Or_Url.replace(" ","%20").replace("^","%5E"))); }
catch (Exception e) { e.printStackTrace(); }
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的答案,但BalusC的解决方案似乎只适用于url的一个实例,我的方法需要使用我传递给它的任何url,它怎么知道将url切成两部分的起点在哪里只编码第二部分?
我在更新项目时暂时禁用电子邮件通知时遇到问题,因此系统不会发送任何不必要的电子邮件.我想要完成的是禁用警报,更新项目,然后启用警报.
SPList tasklist = Web.Lists ["Tasks"];
tasklist.EnableAssignToEmail = false; //此属性使发送邮件被禁用
tasklist.Update();
//在这里做所有更新
项目["标题"] ="新标题"; Item.update();
tasklist.EnableAssignToEmail = true; //启用电子邮件通知
tasklist.Update();
一旦我启用了警报,代码中间所做的更改仍会启动警报并发送电子邮件.
谁有更好的想法来解决这个问题?谢谢.
我刚刚意识到小on功能有多么有用.
例如:
orderByLength = sortBy (compare `on` length)
Run Code Online (Sandbox Code Playgroud)
但不幸的是,推断类型可能有点违反直觉.
根据这个定义
f `on` g = \x y -> f (g x) (g y)
Run Code Online (Sandbox Code Playgroud)
一个人可以替代
(==) `on` length
Run Code Online (Sandbox Code Playgroud)
同
\x y -> (length x) == (length y)
Run Code Online (Sandbox Code Playgroud)
但两者都有不同的类型!
第一个有[a] -> [a] -> Bool第二个,而第二个有正确的,更通用的类型[a] -> [b] -> Bool.
这不允许明显正确的术语(on (==) length) [1, 2, 3] ["a", "b", "c"](这应该产生True但现在甚至无法进行类型检查).
我知道这个限制是由于使用了一流类型而引起的,但是如何克服这个问题呢?有人可以制定一个on可以正确处理多态函数的实现(使用通用量化/秩n类型)吗?
Google对使用$和#等字符搜索逐字字符串不友好.是否有搜索引擎支持搜索逐字字符串?
我知道这个问题刚才被问过,但没有得到任何好的答案.如果我仍然无法得到答案,我准备好了.当然,完全有可能没有一个,但我想确定:)
编辑:行情不起作用.Google甚至在引用时也会删除符号.
示例查询:为makefile中的$ <变量创建"$ <".
我正在编写Qt应用程序,需要存储程序的设置.我希望非高级用户可以轻松编辑它们,但对高级用户来说足够灵活(因此可以通过其他程序,脚本等方便地进行自动编辑).QSettings提供两种格式,原生格式(适用于Windows是注册表)和INI格式(适用于大多数其他平台).INI很好,但是看到@QString(...)或其他Qt内容并不是真的可读并且有点容易出错.
注册表也不是很好.它不是为了编辑或高级使用而设计的,因此不是很好; 它确实解决了跨线程和多个QSettings对象的同步问题(所以我不会擦除所有内容,尽管我可以使用一个全局对象,受读写锁定器保护).我正在研究XML,但它非常冗长,它需要编写QSettings格式(不是真正的问题),但非常灵活.
我知道存在其他XML替代方案,但我并不熟悉它们; 我当然不想写一个解析器,我自己的最终格式的异常,而不是基本的东西.
更新 - 注意:我根本不会绕过QSettings,我只会为它编写一个格式 - 看起来它只是两个函数指针(用于读取和写入函数)传递给静态函数然后我可以使用我的格式.
更新2:我也担心Linux服务器,它通常没有GUI ..我希望人们能够通过nano或类似的东西轻松地从服务器编辑配置,而不使用管理器(是的,我会有一个守护进程服务器和一个远程GUI管理器).
我想知道如何将NSArray 转换为Objective-C中[@"Apple", @"Pear ", 323, @"Orange"]的字符串.
alert ×1
arrays ×1
asp.net ×1
c ×1
c# ×1
email ×1
format ×1
gcc ×1
haskell ×1
ini ×1
input ×1
java ×1
javascript ×1
keyboard ×1
ms-office ×1
nsarray ×1
nsstring ×1
objective-c ×1
parsing ×1
polymorphism ×1
portability ×1
qt ×1
scope ×1
search ×1
settings ×1
sharepoint ×1
types ×1
uri ×1
xml ×1