问题列表 - 第36144页

我可以在中间而不是结尾使用__VA_ARGS定义可变参数C预处理器宏吗?

如果我这样做,海湾合作委员会会抱怨:

#define M(obj,met, ..., contents) obj##_##met(const void * self, __VA_ARGS__) { \
   contents \
   }
Run Code Online (Sandbox Code Playgroud)

给我这两个理由:

error: missing ')' in macro parameter list
warning: __VA_ARGS__ can only appear in the expansion of a C99 variadic macro
Run Code Online (Sandbox Code Playgroud)

显然,C99样式的可变参数宏在省略号之后立即期望右括号,有效地要求可变参数列表是宏的最后一个参数.我需要它在中间来产生我在上面的宏中描述的速记符号.GCC是否支持此功能,使用另一种(非C99)可变参数宏样式?我可以模仿它在其他地方做吗?我不希望最后的变量列表,它会让我的符号混乱.我只能使用GCC.

c gcc c99 c-preprocessor variadic-macros

6
推荐指数
2
解决办法
9886
查看次数

获取LINQ中组的第一条记录?

简介:如何获得有序数据组中的前1个元素

我试图通过CarId字段进行分组,然后在每个组中,我想对DateTimeStamp字段进行降序排序.所需的数据将是每辆车给我最新的DateTimeStamp,只有该组中的1.

我可以达到这一点,但是有问题从组中排名前1并通过DateTimeStamp desc命令组.

以下是我在第一组操作后的情况:

group 1
------------------------
CarId  DateTimeStamp 
1      1/1/2010
1      1/3/2010
1      3/4/2010

group 2
------------------------
CarId  DateTimeStamp 
2      10/1/2009
2      1/3/2010
2      9/4/2010
Run Code Online (Sandbox Code Playgroud)

想要一个有序组中的前1名

    group 1
    ------------------------
    CarId  DateTimeStamp 
    1      3/4/2010

    group 2
    ------------------------
    CarId  DateTimeStamp 
    2      9/4/2010
Run Code Online (Sandbox Code Playgroud)

Brickwall:在我停止的地方,需要group by子句中的CarId和DateTimeStamp,以便稍后按DateTimeStamp排序.也许日期的排序应该在一个单独的函数中完成,不确定.

c# linq linq-to-entities entity-framework c#-4.0

15
推荐指数
1
解决办法
1万
查看次数

php评估后的PHP file_get_contents

我知道如何使用file_get_contents和fopen等,但当我对自己的文件执行此操作时,我得到了文字字符串,这意味着代码未经过预处理!如何在不使用require等的情况下从文件导入文本,因为我想将值存储到字符串中

php import fopen require

4
推荐指数
1
解决办法
1450
查看次数

如何使用JavaScript阻止浏览器的退格按钮的默认历史记录返回操作?

当用户在浏览器上按退格键时,有没有办法阻止默认操作发生?我不需要阻止用户离开,只需要进行默认的退格操作.我需要退格键做一些不同的事情(这是一场游戏).

我尝试没有成功:

window.addEventListener('keydown', function(e) {
    if (e.keyCode === Game.Key.BACK_SPACE)
    {
        e.preventDefault();
        e.stopPropagation();
        return false;
    }
}, false);
Run Code Online (Sandbox Code Playgroud)

如果我在if内部发出警报,则会显示退格键按下警报.所以,keyCode是正确的.

编辑:这必须适用于Opera 10.6,Firefox 4,Chrome 6,IE 9和Safari 5.

javascript events

6
推荐指数
1
解决办法
1万
查看次数

如何将 YouTube 视频添加到观看队列?

我的页面上有一个 YouTube 视频链接列表。我想让用户标记感兴趣的视频,以编程方式将它们添加到观看队列中,然后将用户转发到 YouTube,在那里他们可以按顺序观看所有这些视频。是否可以?

youtube youtube-api

1
推荐指数
1
解决办法
1万
查看次数

为什么Enumerable.ToLookup <>()返回ILookup <,>而不是Lookup <,>?

一种方法Lookup<,>不在于ILookup<,>:

public IEnumerable<TResult> ApplyResultSelector<TResult>(
    Func<TKey, IEnumerable<TElement>, TResult> resultSelector);
Run Code Online (Sandbox Code Playgroud)

为什么Enumerable.ToLookup<>()声明的返回类型ILookup<,>尽管它似乎总是返回一个实例Lookup<,>?如果返回类型被声明为Lookup<,>,则可以在没有强制转换的情况下使用上述方法.

.net api-design enumerable

9
推荐指数
1
解决办法
838
查看次数

'TryParse'或'TryGetValue'的示例实现

你能给我一个.NET'try'模式实现的例子吗?

编辑:

我不是指"try-catch"语句,我的意思是尝试模式,如用于TryParse()TryGetObjectByKey()方法.

更具体地说,在自定义'try'模式方法中如何处理引发异常.如果我记录它,我应该忽略它.有人知道这些方法的做法是什么?

c# design-patterns

25
推荐指数
2
解决办法
2万
查看次数

相互排斥和信号量

我正在写一个模拟男女皆宜的浴室的程序(用于家庭作业).一次只允许4个人,如果其他性别已经在使用浴室,男女不能进入.我的问题是允许最多4人在浴室.从输出中可以看出,一次只有一个人进入洗手间.这是我的代码:

const int Delayx = 60;
int i;
int restroom = 0;
int Menwaiting = 0;
int Womenwaiting = 0;
semaphore max_capacity;
semaphore woman;
semaphore man;
semaphore mutex;
semaphore restroomcount;
void Delay(void)
{
    int DelayTime;
    DelayTime = random(Delayx);
    for (i = 0; i<DelayTime; i++);
}

void Woman(void)
{
//  for(;;){
    Womenwaiting++;
    //wait(mutex);
    wait(woman);
    wait(max_capacity);
        //wait(woman);
        wait(mutex);
        wait(restroomcount);
        cout << "A Woman has entered Restroom"<<endl;
        cout << "People in the Restroom:" << restroom++ <<endl <<endl;
        signal(restroomcount);
        Womenwaiting--;
        Delay();
        wait(restroomcount);
        cout << …
Run Code Online (Sandbox Code Playgroud)

c++ mutex semaphore

11
推荐指数
1
解决办法
9350
查看次数

将Python字符串转换为其ASCII表示形式

如何将Python中的字符串转换为ASCII十六进制表示符?

例如:我想导致'\x00\x1b\xd4}\xa4\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'001bd47da4f3.

python

6
推荐指数
2
解决办法
1万
查看次数

如何检查以确保在调用atoi()之前有一个整数?

我希望将整数作为命令行参数,但如果用户传递非整数字符串,则会导致堆栈溢出.确保atoi()成功的标准方法是什么?

c casting atoi

7
推荐指数
2
解决办法
2万
查看次数