We present two equivalent approaches for defining answer sets for logic programs with arbitrary abstract constraint atoms (c-atoms). The first approach uses an immediate consequence operator for answer set checking, whose definition relies on the notion of conditional satisfaction of c-atoms w.r.t. a pair of interpretations. The second approach generalizes the notion of well-supported models of normal logic programs to programs with c-atoms. We prove that the newly defined semantics coincides with previously introduced semantics for logic programs with monotone c-atoms and extends the original answer set semantics for normal logic programs. We discuss different possibilities for treating negation-as-failure c-atoms and characterize situations in which they yield the same answer sets. We study some properties of answer sets of programs with c-atoms and relate our definition to several semantics for logic programs with aggregates.